gpt4 book ai didi

python - 在二郎 : How do I expand wxNotebook in a panel?

转载 作者:太空狗 更新时间:2023-10-29 21:07:54 27 4
gpt4 key购买 nike

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

我想在wxWidgets中创建一个简单的窗口:
我创建了一个主面板,并将其添加到表单中
我将一个 boxsizer 关联到主面板(将其水平分成两部分)。
我将 LeftPanel 添加到 boxsizer,
我将 RightPanel 添加到 boxsizer,
我创建了一个新的 boxsizer(垂直)
我创建了另一个 boxsizer(水平)
我创建了一个笔记本小部件
我创建了一个面板并将其放入笔记本中 (addpage)
我将笔记本添加到新的 boxsizer(垂直的)
我在水平的中添加了垂直的 sizer
我将水平 sizer 关联到 RightPanel
我将左右面板添加到主 sizer。

这行不通...

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

所以我的问题是。假设我想扩展 RightPanel 中的笔记本小部件以占据表单右侧区域的其余部分,我该怎么做呢?

对于那些了解 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),
...

最佳答案

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

基本上我将添加命令的比例更改为 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}]),

关于python - 在二郎 : How do I expand wxNotebook in a panel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1218433/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com