0

外部 XRC 方法論を使用して、wxFormBuilder でユーザー インターフェイスを実装しています。

この方法で wxStaticBoxSizer からぶら下がっているパネルの配列を実装しようとしています:

MainFrame::MainFrame(const wxString& title, const wxPoint& pos, const wxSize& size) {

    wxXmlResource::Get()->LoadFrame((wxFrame*)this,  (wxWindow*)NULL , wxT("MyFrame1"));

    wxStaticBoxSizer* almacenador = (wxStaticBoxSizer*)FindItem(XRCID("Contenedor"));

    if (!almacenador){
        cout << "Error cargando sizer!" << endl << flush;
    }

    wxXmlResource::Get()->LoadPanel( (wxWindow*)almacenador , wxT("MyPanel6"));
    wxXmlResource::Get()->LoadPanel( (wxWindow*)almacenador , wxT("MyPanel6"));
    wxXmlResource::Get()->LoadPanel( (wxWindow*)almacenador , wxT("MyPanel6"));

    SetTitle(title);
    SetIcon(wxICON(appicon));
    SetSize(size);
    SetPosition(pos);

    Show(true);
}

「メイン」関数からリソースがロードされた場所

wxXmlResource::Get()->Load("rc/resource2.xrc"); 

行。プログラムを起動すると、3 つのパネルがどこにも表示されないため、機能します。

これは私の XRC のファイルです:

メインフレーム:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<resource xmlns="http://www.wxwindows.org/wxxrc" version="2.3.0.1">
    <object class="wxFrame" name="MyFrame1">
        <style>wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL</style>
        <size>283,401</size>
        <title></title>
        <centered>1</centered>
        <aui_managed>0</aui_managed>
        <object class="wxPanel" name="m_panel1">
            <style>wxTAB_TRAVERSAL</style>
            <object class="wxBoxSizer">
                <orient>wxVERTICAL</orient>
                <object class="sizeritem">
                    <option>0</option>
                    <flag>wxEXPAND</flag>
                    <border>5</border>
                    <object class="wxBoxSizer">
                        <orient>wxHORIZONTAL</orient>
                        <object class="sizeritem">
                            <option>0</option>
                            <flag>wxALL|wxALIGN_BOTTOM</flag>
                            <border>5</border>
                            <object class="wxStaticText" name="m_label_Nombre1">
                                <label>Nombre</label>
                                <wrap>-1</wrap>
                            </object>
                        </object>
                        <object class="sizeritem">
                            <option>1</option>
                            <flag>wxEXPAND|wxTOP|wxRIGHT|wxLEFT</flag>
                            <border>5</border>
                            <object class="wxTextCtrl" name="m_text_Nombre">
                                <value></value>
                            </object>
                        </object>
                    </object>
                </object>
                <object class="sizeritem">
                    <option>0</option>
                    <flag>wxALIGN_TOP|wxEXPAND</flag>
                    <border>5</border>
                    <object class="wxBoxSizer">
                        <orient>wxHORIZONTAL</orient>
                        <object class="sizeritem">
                            <option>0</option>
                            <flag>wxALL|wxALIGN_BOTTOM</flag>
                            <border>5</border>
                            <object class="wxStaticText" name="m_label_Apellidos">
                                <label>Apellidos</label>
                                <wrap>-1</wrap>
                            </object>
                        </object>
                        <object class="sizeritem">
                            <option>1</option>
                            <flag>wxTOP|wxRIGHT|wxLEFT</flag>
                            <border>5</border>
                            <object class="wxTextCtrl" name="m_text_Apellidos">
                                <value></value>
                            </object>
                        </object>
                    </object>
                </object>
                <object class="sizeritem">
                    <option>0</option>
                    <flag>wxEXPAND</flag>
                    <border>5</border>
                    <object class="wxBoxSizer">
                        <orient>wxHORIZONTAL</orient>
                        <object class="sizeritem">
                            <option>0</option>
                            <flag>wxALL|wxALIGN_BOTTOM</flag>
                            <border>5</border>
                            <object class="wxStaticText" name="m_label_Edad">
                                <label>Edad</label>
                                <wrap>-1</wrap>
                            </object>
                        </object>
                        <object class="sizeritem">
                            <option>0</option>
                            <flag>wxALIGN_BOTTOM|wxALIGN_RIGHT|wxTOP|wxRIGHT|wxLEFT</flag>
                            <border>5</border>
                            <object class="wxSpinCtrl" name="m_spin_Edad">
                                <style>wxSP_ARROW_KEYS</style>
                                <value>0</value>
                                <min>0</min>
                                <max>10</max>
                            </object>
                        </object>
                    </object>
                </object>
                <object class="sizeritem">
                    <option>0</option>
                    <flag>wxEXPAND | wxALL</flag>
                    <border>5</border>
                    <object class="wxStaticLine" name="m_staticline1">
                        <style>wxLI_HORIZONTAL</style>
                    </object>
                </object>
                <object class="sizeritem">
                    <option>1</option>
                    <flag>wxEXPAND</flag>
                    <border>5</border>
                    <object class="wxBoxSizer">
                        <orient>wxHORIZONTAL</orient>
                        <object class="sizeritem">
                            <option>1</option>
                            <flag>wxALL|wxEXPAND</flag>
                            <border>5</border>
                            <object class="wxRadioBox" name="m_radioBox_Sexo">
                                <label>Sexo</label>
                                <selection>0</selection>
                                <content>
                                    <item>Hombre</item>
                                    <item>Mujer</item>
                                </content>
                                <dimension>1</dimension>
                            </object>
                        </object>
                        <object class="sizeritem">
                            <option>1</option>
                            <flag>wxEXPAND|wxALL</flag>
                            <border>5</border>
                            <object class="wxStaticBoxSizer">
                                <orient>wxVERTICAL</orient>
                                <label>Preferencias</label>
                                <object class="sizeritem">
                                    <option>0</option>
                                    <flag>wxALL</flag>
                                    <border>5</border>
                                    <object class="wxCheckBox" name="m_checkBox_Cocacola">
                                        <label>Cocacola</label>
                                        <checked>0</checked>
                                    </object>
                                </object>
                                <object class="sizeritem">
                                    <option>0</option>
                                    <flag>wxALL</flag>
                                    <border>5</border>
                                    <object class="wxCheckBox" name="m_checkBox_FantaNaranja">
                                        <label>Fanta naranja</label>
                                        <checked>0</checked>
                                    </object>
                                </object>
                                <object class="sizeritem">
                                    <option>0</option>
                                    <flag>wxALL</flag>
                                    <border>5</border>
                                    <object class="wxCheckBox" name="m_checkBox_FantaLimon">
                                        <label>Fanta Limon</label>
                                        <checked>0</checked>
                                    </object>
                                </object>
                            </object>
                        </object>
                    </object>
                </object>
                <object class="sizeritem">
                    <option>1</option>
                    <flag>wxEXPAND</flag>
                    <border>5</border>
                    <object class="wxStaticBoxSizer" name="Contenedor">
                        <orient>wxVERTICAL</orient>
                        <label>Contenedor</label>
                        <object class="sizeritem">
                            <option>0</option>
                            <flag>wxALL</flag>
                            <border>5</border>
                            <object class="wxButton" name="m_button4">
                                <label>MyButton</label>
                                <default>0</default>
                            </object>
                        </object>
                    </object>
                </object>
                <object class="sizeritem">
                    <option>0</option>
                    <flag>wxALIGN_BOTTOM</flag>
                    <border>5</border>
                    <object class="wxBoxSizer">
                        <orient>wxHORIZONTAL</orient>
                        <object class="sizeritem">
                            <option>0</option>
                            <flag>wxALL</flag>
                            <border>5</border>
                            <object class="wxButton" name="m_button_Guardar">
                                <label>Guardar</label>
                                <default>0</default>
                            </object>
                        </object>
                        <object class="sizeritem">
                            <option>0</option>
                            <flag>wxALL</flag>
                            <border>5</border>
                            <object class="wxButton" name="m_button_Limpiar">
                                <label>Limpiar</label>
                                <default>0</default>
                            </object>
                        </object>
                        <object class="sizeritem">
                            <option>0</option>
                            <flag>wxALL</flag>
                            <border>5</border>
                            <object class="wxButton" name="m_button_Salir">
                                <label>Salir</label>
                                <default>0</default>
                            </object>
                        </object>
                    </object>
                </object>
            </object>
        </object>
    </object>
</resource>

そして2番目のもの(配列として繰り返されるオブジェクト):

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<resource xmlns="http://www.wxwindows.org/wxxrc" version="2.3.0.1">
    <object class="wxPanel" name="MyPanel6">
        <style>wxTAB_TRAVERSAL</style>
        <size>500,300</size>
        <object class="wxBoxSizer">
            <orient>wxVERTICAL</orient>
            <object class="sizeritem">
                <option>0</option>
                <flag>wxALL</flag>
                <border>5</border>
                <object class="wxButton" name="m_button5">
                    <label>FRAME2</label>
                    <default>0</default>
                </object>
            </object>
        </object>
    </object>
</resource>

メイン XRC 内に XRC パネルの配列を作成する方法は? ありがとう

4

1 に答える 1