(由于我可以理解Python代码,因此我将此问题打上了Python的标签,因此欢迎提供Python示例!)
我想在wxWidgets中创建一个简单的窗口:
- 我创建了一个主面板并将其添加到表单中 - 我将一个boxsizer与主面板关联(将其水平分割为两部分)。 - 我将LeftPanel添加到boxsizer中, - 将RightPanel添加到boxsizer中, - 我创建了一个新的boxsizer(垂直的) - 我创建了另一个boxsizer(水平的) - 我创建了一个Notebook小部件 - 我创建了一个面板并将其放入Notebook中(addpage) - 我将笔记本电脑添加到新的boxsizer(垂直) - 将垂直sizer添加到水平sizer中 - 将水平sizer关联到RightPanel - 将左侧和右侧面板添加到主sizer中。
这样做不起作用...
也许我漏掉了什么(对于sizers的精神障碍),但是我想做的事情是扩展Notebook小部件,而不使用水平sizer内的垂直sizer(它无论如何都不起作用)。
因此我的问题是:假设我想展开位于RightPanel中的Notebook小部件以占据表单右侧区域的其余空间,我该如何做到这一点?
对于那些理解Erlang的人,这是我目前为止的内容:
我想在wxWidgets中创建一个简单的窗口:
- 我创建了一个主面板并将其添加到表单中 - 我将一个boxsizer与主面板关联(将其水平分割为两部分)。 - 我将LeftPanel添加到boxsizer中, - 将RightPanel添加到boxsizer中, - 我创建了一个新的boxsizer(垂直的) - 我创建了另一个boxsizer(水平的) - 我创建了一个Notebook小部件 - 我创建了一个面板并将其放入Notebook中(addpage) - 我将笔记本电脑添加到新的boxsizer(垂直) - 将垂直sizer添加到水平sizer中 - 将水平sizer关联到RightPanel - 将左侧和右侧面板添加到主sizer中。
这样做不起作用...
也许我漏掉了什么(对于sizers的精神障碍),但是我想做的事情是扩展Notebook小部件,而不使用水平sizer内的垂直sizer(它无论如何都不起作用)。
因此我的问题是:假设我想展开位于RightPanel中的Notebook小部件以占据表单右侧区域的其余空间,我该如何做到这一点?
对于那些理解Erlang的人,这是我目前为止的内容:
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),
...