首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代码::UI设计中的块初学者问题

代码::UI设计中的块初学者问题
EN

Stack Overflow用户
提问于 2013-05-21 11:42:49
回答 1查看 598关注 0票数 0

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

但当它运行的时候我就明白了:

我已经更改了一些属性,如下所示,但我不确定这是否是正确的做法。

  1. 我在表单上放置了一个灵活的网格。使它适合1列3行
  2. 放置3 BoxSizers。所以他们是另一个下的。将展开属性设置为true。
  3. 将StaticText和TextCtrl元素(各一种)放置在前两个拳击手中
  4. 将隔板和按钮放置在第三箱筛中。
  5. 对于address文本框,我将multiline属性设置为true (复选框) 5。

但是,当它运行时,它似乎没有增长。按钮在底部不见了。

有什么解决办法吗请..。谢谢!

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

代码语言:javascript
复制
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);
    //*)
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-21 12:29:04

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

代码语言:javascript
复制
 Button1->SetMaxSize(wxSize(0,0));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16669179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档