2013-05-21 3 views
0

Я новичок в C :: B и wxWidgets. Я пытался создать простой экран:Код :: Блок начального выпуска с дизайном пользовательского интерфейса

enter image description here

Но я получаю это, когда он запущен:

enter image description here

Я изменил несколько свойств как следующий, но я Не уверен, что это было правильно.

  1. Я разместил гибкую сетку на форме. Сделано для 1 колонки и 3 ряда
  2. Размещено 3 BoxSizers. Таким образом, они один под другим. Установите для свойства expand значение true.
  3. Размещенные элементы StaticText и TextCtrl (по одному) в первом 2 боксере дробилок
  4. Поставили распорку и кнопки в 3 коробках классификатора
  5. Для адреса текстового поля, я установил многострочное свойство верно (флажок) 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); 
    //*) 
} 
+0

Ой, и это Ubuntu 12,04 с C :: B 10,05 – itsols

ответ

1

Это похоже, что это дало бы ваши проблемы:

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

Ну поймал! +1 для направления ... Спасибо за это. Но я думаю, что я столкнулся с новой проблемой ... Я удалил кнопку из формы. Теперь он не компилируется. Он подключается (wxID_ANY, wxEVT_INIT_DIALOG, (wxObjectEventFunction) и KBond :: OnInit); Но когда я комментирую последнюю строку (т. Е. Connect (wxID ....), она компилируется отлично. Что, по-видимому, является проблемой? BTW, удалив кнопку, соответствующий код был автоматически удален. – itsols

+0

Я удалил эту строку (он немного рискнул - улыбнулся) и добавил еще одну кнопку в форме. Даже добавил событие «OnClick», и, похоже, он работает. Поэтому я думаю, что это был избыточный код, который был оставлен без использования C :: B IDE. Спасибо за ваше время! – itsols

+0

Добро пожаловать. Для моего собственного участия в C: B и подобных инструментах см. Этот ответ: http://stackoverflow.com/a/13440487/16582 – ravenspoint

Смежные вопросы