Maz*_*ake 8 python erlang layout wxwidgets
(我已经将这个问题标记为Python,因为我理解Python代码,因此也欢迎使用Python中的示例!).
我想在wxWidgets中创建一个简单的窗口:
我创建了一个主面板,我将其添加到一个表单中,我将
一个boxsizer与主面板相关联(将它分成两个,水平).
我将LeftPanel添加到boxsizer,
我将RightPanel添加到boxsizer,
我创建一个新的boxsizer(垂直)
我创建另一个boxsizer(水平)
我创建一个Notebook小部件
我创建一个Panel并将其放入Notebook(addpage)
我添加了笔记本到新的boxsizer(垂直一个)
我在水平测量器中添加垂直
测量器
我将水平测量器与RightPanel相关联我将左和右面板添加到主测量器.
这不起作用......
也许我错过了一些东西(约施胶剂心理障碍),但我会喜欢做的是扩展笔记本部件不与水平线在内部使用了垂直分级器(它不反正工作).
所以我的问题是.假设我想在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),
...
Run Code Online (Sandbox Code Playgroud)
在弄清楚我需要做什么后,我将(尽快)结束这个问题。
基本上我将主面板的添加命令的比例更改为 1(这将扩展整个内容)
新代码:
%% 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}]),
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1382 次 |
| 最近记录: |