Code ::阻止UI设计的初学者问题

时间:2013-05-21 11:42:50

标签: user-interface wxwidgets codeblocks ui-design

我是C :: B和wxWidgets的新手。我试图创建一个这样的简单屏幕:

enter image description here

但是当它运行时我会得到它:

enter image description here

我更改了以下几个属性,但我不确定这是否正确。

  1. 我在表单上放置了一个弹性网格。制作1列3行
  2. 放置3个BoxSizer。所以他们是一个在另一个之下。将expand属性设置为true。
  3. 在前2个拳击手大小调整器中放置了StaticText和TextCtrl元素(每个一个)
  4. 在第3个盒子分级器中放置垫片和按钮
  5. 对于地址文本框,我将multiline属性设置为true(复选框)5。
  6. 但是在跑步时,它似乎并没有增长。底部缺少按钮。

    有关如何解决这个问题的任何想法请... 谢谢!

    这是(为表单生成的默认代码的一部分)。

    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);
        //*)
    }
    

1 个答案:

答案 0 :(得分:1)

这看起来会给你带来麻烦:

 Button1->SetMaxSize(wxSize(0,0));