Не смог найти ответ на итересующий меня вопрос, поэтому спрашиваю здесь.
Возможно ли используя только одни сайзеры получить что-то проде control wrap'а?
Было:
Стало:
Сайзеры и их возможности Topic is solved
-
- In need of some credit
- Posts: 9
- Joined: Sat May 02, 2009 7:46 pm
-
- Experienced Solver
- Posts: 85
- Joined: Mon Dec 11, 2006 11:35 am
- Location: /dev/null
Re: Сайзеры и их возможности
Есть wxWrapSizer начиная с wxWidgets 2.9.0
-
- Experienced Solver
- Posts: 72
- Joined: Wed Oct 10, 2007 4:27 am
О, супер, а он умеет wxStaticText заворачивать ?
Best regards, Nikolay
wxWidgets in russian
Small Notes Manager and Clipboard Manager with History written with wxWidgets
wxWidgets in russian
Small Notes Manager and Clipboard Manager with History written with wxWidgets
-
- Experienced Solver
- Posts: 85
- Joined: Mon Dec 11, 2006 11:35 am
- Location: /dev/null
-
- Experienced Solver
- Posts: 72
- Joined: Wed Oct 10, 2007 4:27 am
wxStaticText::Wrap это не совсем то..., хочется динамический метод.
А про это хотелось бы подробнее, это недавно появилось или я что-то не так делал раньше? но мне такого эффекта достигнуть не удавалось.wxStaticText сам заворачивает тест, только надо поставить пропорцию в сайзере
Best regards, Nikolay
wxWidgets in russian
Small Notes Manager and Clipboard Manager with History written with wxWidgets
wxWidgets in russian
Small Notes Manager and Clipboard Manager with History written with wxWidgets
-
- Experienced Solver
- Posts: 85
- Joined: Mon Dec 11, 2006 11:35 am
- Location: /dev/null
Вот заплатка где это показано. Ее надо применить к минимальному примеру.Nikolay wrote:но мне такого эффекта достигнуть не удавалось.
Code: Select all
--- minimal.cpp.bak 2009-03-06 14:11:06.000000000 +0200
+++ minimal.cpp 2009-07-21 17:49:51.218750000 +0300
@@ -185,6 +185,12 @@
void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
{
+wxDialog *dlg = new wxDialog(this, wxID_ANY, wxString(_T("Test")), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER);
+dlg->SetSizer(new wxBoxSizer(wxVERTICAL));
+dlg->GetSizer()->Add(new wxStaticText(dlg, wxID_ANY, _T("test test test test test test test test test test test test test test test test test test test test test test test test test test test test test")), wxSizerFlags(1).Expand().Border());
+dlg->ShowModal();
+return ;
+
wxMessageBox(wxString::Format(
_T("Welcome to %s!\n")
_T("\n")
-
- In need of some credit
- Posts: 9
- Joined: Sat May 02, 2009 7:46 pm
Re: Сайзеры и их возможности
Скачал с FTP wxWidgets-2.9.0-rc6 для MSW. Запустил семплы (с wxWrapSizer'ом там их два). Попробывал, порастягивал окошко туда сюда. Все свиду нормально. Изменил число эелентов, вот тут и увидел, как все "замечатльно". Впечатление такое, будто сайзер не доделал (возможно потому, что пока еще не финальная версия).Kolya wrote:Есть wxWrapSizer начиная с wxWidgets 2.9.0
При первом появлении окна, некоторые контролы могут налазить друг на друга:
При быстром ссужении, контролы не успевают перерисоваться. Также не всегда привильно срабатывает wrap:
Kolya, за совет конечно спасибо. Но в нынешнем состоянии дел, wxWrapSizer мне не подходит. Сейчас пытаюсь сделать что-то свое, но столкнулся с проблеммой: при создании, сайзер не получает размеры, которые ему могут быть отведены владельцем (оно конечно понятно, ведь ситуации бывают разные). В результате не зная ширины, нет возможности узнать количество строк, а значит посчитать высоту сайзера. Если есть соображения на счет этого, буду рад всем советам.
-
- Experienced Solver
- Posts: 72
- Joined: Wed Oct 10, 2007 4:27 am
Kolya wrote: Вот заплатка где это показано. Ее надо применить к минимальному примеру.
Спасибо, работает. Буду знать, интересно почему это у меня не получалось.
Best regards, Nikolay
wxWidgets in russian
Small Notes Manager and Clipboard Manager with History written with wxWidgets
wxWidgets in russian
Small Notes Manager and Clipboard Manager with History written with wxWidgets
-
- In need of some credit
- Posts: 9
- Joined: Sat May 02, 2009 7:46 pm
Re: Сайзеры и их возможности
Похоже, что вопро решен. Всем спасибо, тема закрыта.