Как сделать подобный интерфейс с помощью wxWidgets? - PullRequest
0 голосов
/ 08 марта 2020

Как сделать аналогичный интерфейс с помощью wxWidgets form? Мне нужно динамически создавать текстовые поля. Я знаю, как это сделать с Delphi gitHub . Но как это сделать с C ++ и wxWidgets?

вот мой код. Я не понимаю, что делать

Simple::Simple(const wxString& title)
: wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(270, 450))
{
    wxBoxSizer *hbox = new wxBoxSizer(wxVERTICAL);

    for (int i = 0; i < 25; i++)
        {
            hbox->Add(new wxListBox(this, wxID_ANY, wxDefaultPosition, wxSize(250, 60)), wxSizerFlags(0).Border(wxALL, 5));
            auto itm = hbox->GetItem(i);
            itm->SetId(i);
        }
    SetSizer(hbox);
}

1 Ответ

1 голос
/ 08 марта 2020

@ Nindzzya,

По сути, вы создаете wxFrame. Вы помещаете в него экземпляр wxScrolled <>. Затем внутри этого wxScrolled <> () вы помещаете вертикальный wxBoxSizer. И, наконец, добавьте соответствующие элементы управления внутри этого классификатора.

Следуя вашему примеру:

for (auto i = 0; i < 25; i++)
    {
        textctrl[i] = new wxTextCtrl( this, wxID_ANY, wxDefaultPosition, wxSize( 250, 60 ), wxSizerFlags( 0 ).Border( wxALL, 5 ) )
        hbox->Add( textctrl[i] );
    }

MyFrame::Some_Func()
{
    for( auto i : { 0, 25 } )
    {
        textctrl[i]->GetValue();
    }
}

Вам даже не нужен идентификатор или что-то подобное. И этот вопрос о basi c C ++. Это не имеет ничего общего с wxWidgets.

...