У меня настроен wxListbook, и я хочу установить статическую ширину для левого списка, в котором отображаются заголовки страниц. В настоящее время, когда ни одна страница не добавлена, она не имеет ширины, а когда страницы добавляются, ширина становится равной максимальному расстоянию между заголовками.
Empty:
Добавленные страницы:
Я перепробовал несколько вещей, но мне не повезло.
Сначала я попытался установить ширину столбца, но не увидел никакой разницы:
listBook = new wxListbook( this, ID_LISTBOOK, wxDefaultPosition, wxDefaultSize, wxLB_LEFT );
wxListView* listBookListView1 = listBook->GetListView();
listBookListView1->SetColumnWidth(0,400); //tried 0,1,-1 for the first parameter
Затем я попробовал SetMinSize, но опять же, без разницы:
listBook = new wxListbook( this, ID_LISTBOOK, wxDefaultPosition, wxDefaultSize, wxLB_LEFT );
listBook->SetMinSize(wxSize(400,500));
Я тоже пробовал SetSize, но без разницы:
listBook = new wxListbook( this, ID_LISTBOOK, wxDefaultPosition, wxDefaultSize, wxLB_LEFT );
listBook->SetSize(wxSize(200,200));
Каков был бы правильный способ сделать это? Помощь приветствуется.
В настоящее время wxListbook
всегда соответствует списку его содержанию. Лично мне очень интересно, почему это должно быть проблемой, в частности, почему вы хотите иметь wxListbook
без каких-либо страниц и что это может быть полезно. Но, в принципе, установка минимального размера элемента управления списком должна работать, и если вы можете изменить wxWidgets, чтобы сделать это следующим образом, мы с удовольствием применили бы пластырь Делать это.
Однако сейчас нет способа сделать это, извините.
Испытал похожую проблему с wxTreebook, даже подготовил патч для этого, но он был отклонен, потому что потенциально нарушает функциональность пользовательских элементов управления книги.
По умолчанию все пользовательские элементы управления книгой имеют странное поведение, связанное с макетом внутреннего элемента управления селектора (wxListView, wxTreeCtrl и т. Д.)
Если хотите, я могу попытаться найти этот код wxTreebook и отправить его вам. Может быть, вы найдете там что-нибудь полезное.
Возможные решения, которые вы могли бы попытаться исправить это: