2009-08-02 8 views
8

(私はこの質問にPythonとしてタグを付けました。私はPythonコードを理解しているので、Pythonの例もまた歓迎です!)。erlang:パネルでwxNotebookを拡張するにはどうすればよいですか?

私はwxWidgetsの中で、単純なウィンドウを作成します:
私は私が(水平、2でそれを分割する)メインパネルにboxsizerを関連付けるフォーム
に追加するメインパネルを作成します。
私は新しいboxsizer(垂直)を作成
、私はboxsizerにRightPanelを追加
、boxsizerにLeftPanelを追加
私は別のboxsizer(水平)
を作成し、私はノートブックウィジェット
を作成し、私はパネルを作成そして、私はRightPanel
に水平サイザーを関連付ける私が横1
に垂直サイザーを追加
私は新しいboxsizer(縦1)にノートを追加するノート(追加addpage)
の中に置きます左と右のパネルをメインサイザーに追加します。

これは動作しません...

たぶん私が見逃している何か(精神的サイザーに関するブロック)が、は私はのように実行するだろうことは、垂直サイザーを使用せずにノートブックウィジェットを拡大することです水平の内側に(それはとにかく動作しません)。

だから私の質問です。 RightPanel内のノートブックウィジェットを拡張して、フォームの右側の領域の残りの部分を占めたいと仮定して、私はそれをどうやって行うのでしょうか?アーランを理解しているものについては

、これは私がこれまで持っているものです。

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), 
    ... 

答えて

4

私は私が行うために必要なものを考え出した後、私は(できるだけ早く私はできる限り)、この質問を閉じています。

%% 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}]), 

は基本的に私は

(これは全体を拡大していきます)メインパネルに追加コマンドの1に新しいコードを比率を変更しました

関連する問題