0

私は C::B と wxWidgets が初めてです。次のような簡単な画面を作成しようとしました。

ここに画像の説明を入力

しかし、実行すると次のようになります。

ここに画像の説明を入力

次のようないくつかのプロパティを変更しましたが、これが正しいことであったかどうかはわかりません。

  1. フォームにフレックス グリッドを配置しました。1列3行にしました
  2. BoxSizer を 3 つ配置しました。だから、彼らはお互いの下にいます。expand プロパティを true に設定します。
  3. 最初の 2 つのボクサーサイザーに StaticText 要素と TextCtrl 要素 (それぞれ 1 つ) を配置しました
  4. 3番目のボックスサイザーにスペーサーとボタンを配置
  5. 住所テキスト ボックスでは、multiline プロパティを true (チェック ボックス) 5 に設定します。

しかし、実行すると、成長しないようです。下部にボタンがありません。

これを修正する方法についてのアイデアをお願いします...ありがとう!

以下は、フォーム用に生成されたデフォルト コード (の一部) です。

KBond::KBond(wxWindow* parent,wxWindowID id,const wxPoint& pos,const wxSize& size)
{
    //(*Initialize(KBond)
    wxBoxSizer* BoxSizer2;
    wxBoxSizer* BoxSizer1;
    wxFlexGridSizer* FlexGridSizer1;
    wxBoxSizer* BoxSizer3;

    Create(parent, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER, _T("wxID_ANY"));
    SetClientSize(wxSize(520,300));
    FlexGridSizer1 = new wxFlexGridSizer(3, 1, 0, 0);
    BoxSizer1 = new wxBoxSizer(wxHORIZONTAL);
    StaticText1 = new wxStaticText(this, ID_STATICTEXT1, _("Enter your name"), wxDefaultPosition, wxSize(90,27), 0, _T("ID_STATICTEXT1"));
    BoxSizer1->Add(StaticText1, 1, wxALL|wxSHAPED|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
    TextCtrl1 = new wxTextCtrl(this, ID_TEXTCTRL1, _("Text"), wxDefaultPosition, wxSize(148,27), 0, wxDefaultValidator, _T("ID_TEXTCTRL1"));
    BoxSizer1->Add(TextCtrl1, 2, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
    FlexGridSizer1->Add(BoxSizer1, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
    BoxSizer2 = new wxBoxSizer(wxHORIZONTAL);
    StaticText2 = new wxStaticText(this, ID_STATICTEXT2, _("Address"), wxDefaultPosition, wxSize(122,22), 0, _T("ID_STATICTEXT2"));
    BoxSizer2->Add(StaticText2, 1, wxALL|wxALIGN_TOP|wxALIGN_CENTER_HORIZONTAL, 5);
    TextCtrl2 = new wxTextCtrl(this, ID_TEXTCTRL2, _("Text"), wxDefaultPosition, wxSize(113,98), wxTE_MULTILINE, wxDefaultValidator, _T("ID_TEXTCTRL2"));
    BoxSizer2->Add(TextCtrl2, 2, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
    FlexGridSizer1->Add(BoxSizer2, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
    BoxSizer3 = new wxBoxSizer(wxHORIZONTAL);
    BoxSizer3->Add(0,0,2, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
    Button1 = new wxButton(this, ID_BUTTON1, _("Label"), wxDefaultPosition, wxSize(62,29), 0, wxDefaultValidator, _T("ID_BUTTON1"));
    Button1->SetMaxSize(wxSize(0,0));
    BoxSizer3->Add(Button1, 1, wxALL|wxSHAPED|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5);
    FlexGridSizer1->Add(BoxSizer3, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
    SetSizer(FlexGridSizer1);
    FlexGridSizer1->SetSizeHints(this);

    Connect(wxID_ANY,wxEVT_INIT_DIALOG,(wxObjectEventFunction)&KBond::OnInit);
    //*)
}
4

1 に答える 1

1

これはあなたの問題を引き起こすように見えます:

 Button1->SetMaxSize(wxSize(0,0));
于 2013-05-21T12:29:04.980 に答える