首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在erlang中:如何在面板中扩展wxNotebook?

在erlang中:如何在面板中扩展wxNotebook?
EN

Stack Overflow用户
提问于 2009-08-02 08:28:41
回答 1查看 1.4K关注 0票数 8

(我也将这个问题标记为Python,因为我理解Python代码,所以也欢迎使用Python中的示例!)

我想在wxWidgets中创建一个简单的窗口:

我创建一个主面板,并将其添加到表单中。

我把一个盒子和主面板联系在一起(将它分成两部分,水平地)。

我把LeftPanel加到盒子里,

我把RightPanel加到盒子里,

我创建了一个新的盒子(垂直)

我创建了另一个盒子(水平)

我创建了一个笔记本小部件

我创建了一个面板,并将它放在笔记本(addpage)中。

我把笔记本加到新的盒子里(垂直的)。

我在水平的那个里加了垂直的筛。

我将水平测试器与RightPanel相关联。

我把左面板和右面板加到主筛上。

这不管用..。

也许我错过了一些东西(关于sizer的思维障碍),但是我想做的是扩展笔记本小部件,而不使用水平小部件内的垂直sizer(它无论如何都不起作用)。

所以我的问题是。假设我想在RightPanel中扩展Notebook小部件以占用表单的其余右侧区域,那么我将如何做呢?

对于那些了解Erlang的人来说,这就是我到目前为止所拥有的:

代码语言:javascript
复制
mainwindow() ->
  %% Create new environment
  X = wx:new(),

  %% Create the main frame
  MainFrame = wxFrame:new(X, -1, "Test"),
  MainPanel = wxPanel:new(MainFrame, [{winid, ?wxID_ANY}]),
  MainSizer = wxBoxSizer:new(?wxHORIZONTAL),
  wxWindow:setSizer(MainPanel, MainSizer),

  %% Left Panel...
  LeftPanel = wxPanel:new(MainPanel, [{winid, ?wxID_ANY}]),
  LeftPanelSizer = wxBoxSizer:new(?wxVERTICAL),
  wxWindow:setSizer(LeftPanel, LeftPanelSizer),
  wxWindow:setMinSize(LeftPanel, {152, -1}),

  %% Right Panel
  RightPanel = wxPanel:new(MainPanel, [{winid, ?wxID_ANY}]),
  RightPanelVerticalSizer = wxBoxSizer:new(?wxVERTICAL),
  RightPanelHorizontalSizer = wxBoxSizer:new(?wxHORIZONTAL),
  wxWindow:setBackgroundColour(RightPanel, {255,0,0}),

  Notebook = wxNotebook:new(RightPanel, ?wxID_ANY, [{size,{-1,-1}}]),
  TestPanel1 = wxPanel:new(Notebook, [{size,{-1,-1}},{winid, ?wxID_ANY}]),
  wxNotebook:addPage(Notebook, TestPanel1, "Testpanel!"),
  TestPanel2 = wxPanel:new(Notebook, [{size,{-1,-1}},{winid, ?wxID_ANY}]),
  wxNotebook:addPage(Notebook, TestPanel2, "Testpanel!"),
  wxSizer:add(RightPanelVerticalSizer, Notebook, [{border,0},{proportion,1}, {flag,?wxEXPAND}]),
  wxSizer:add(RightPanelHorizontalSizer, RightPanelVerticalSizer, [{proportion,1}, {flag,?wxEXPAND}]),
  wxWindow:setSizer(RightPanel, RightPanelHorizontalSizer),

  %% Main Sizer
  wxSizer:add(MainSizer, LeftPanel, [{border, 2}, {flag,?wxEXPAND bor ?wxALL}]),
  wxSizer:add(MainSizer, RightPanel, [{border, 2}, {flag,?wxEXPAND bor ?wxTOP bor ?wxRIGHT bor ?wxBOTTOM}]),

  %% Connect to events
  wxFrame:connect(MainFrame, close_window),
  wxWindow:center(MainFrame),  
  wxWindow:show(MainFrame),
  ...
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-08-02 10:30:42

我在弄清楚我需要做什么之后(尽快)结束这个问题。

基本上,我将添加命令的比例改为主面板的1(这将扩展整个过程)。

新代码:

代码语言:javascript
复制
  %% Main Sizer
  wxSizer:add(MainSizer, LeftPanel, [{proportion,0},{border, 2}, {flag,?wxEXPAND bor ?wxALL}]),
  wxSizer:add(MainSizer, RightPanel, [{proportion,1},{border, 2}, {flag,?wxEXPAND bor ?wxTOP bor ?wxRIGHT bor ?wxBOTTOM}]),
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1218433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档