(Ich habe diese Frage auch als Python markiert, da ich Python-Code verstehe, also sind auch Beispiele in Python willkommen!).In erlang: Wie erweitere ich wxNotebook in einem Panel?
Ich mag ein einfaches Fenster in wxWidgets erstellen:
ich eine Hauptplatte, die mich zu einem Formular hinzufügen
verbinde ich eine boxsizer zum Hauptfeld (es in zwei aufgeteilt, horizontal).
mich hinzufügen LeftPanel zum boxsizer,
ich RightPanel zum boxsizer hinzufügen,
ich einen neuen boxsizer (vertikal)
erstellen erstelle mir eine andere boxsizer (horizontal)
ich einen Notebook-Widget erstellen
ich ein Panel erstellen und legt es in dem Notebook (addPage)
I das Notebook an den neuen boxsizer hinzuzufügen (vertikaler)
I die vertikalen Sizer in den horizontalen einem
hinzufügen I assoziieren die horizontalen Sizer zum RightPanel
Ich füge das linke und rechte Panel dem Hauptsizer hinzu.
Das funktioniert nicht ...
Vielleicht habe ich etwas verpasst (mentale Blockade über Sizer), aber was würde ich wie zu tun ist, um das Notebook-Widget ohne die Verwendung des vertikalen Sizer zu erweitern in der horizontalen (es funktioniert sowieso nicht).
Also meine Frage ist. Angenommen, ich möchte das Notizbuchwidget in RightPanel erweitern, um den Rest des rechten Seitenbereichs des Formulars zu übernehmen. Wie würde ich das machen?
Für diejenigen, die Erlang verstehen, das ist, was ich bisher habe:
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),
...