Сайзеры и их возможности Topic is solved

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
Post Reply
deniman
In need of some credit
In need of some credit
Posts: 9
Joined: Sat May 02, 2009 7:46 pm

Сайзеры и их возможности

Post by deniman »

Не смог найти ответ на итересующий меня вопрос, поэтому спрашиваю здесь.
Возможно ли используя только одни сайзеры получить что-то проде control wrap'а?

Было:
Image

Стало:
Image
Kolya
Experienced Solver
Experienced Solver
Posts: 85
Joined: Mon Dec 11, 2006 11:35 am
Location: /dev/null

Re: Сайзеры и их возможности

Post by Kolya »

Есть wxWrapSizer начиная с wxWidgets 2.9.0
Nikolay
Experienced Solver
Experienced Solver
Posts: 72
Joined: Wed Oct 10, 2007 4:27 am

Post by Nikolay »

О, супер, а он умеет wxStaticText заворачивать ?
Best regards, Nikolay
wxWidgets in russian
Small Notes Manager and Clipboard Manager with History written with wxWidgets
Kolya
Experienced Solver
Experienced Solver
Posts: 85
Joined: Mon Dec 11, 2006 11:35 am
Location: /dev/null

Post by Kolya »

Nikolay wrote:О, супер, а он умеет wxStaticText заворачивать ?
wxStaticText сам заворачивает тест, только надо поставить пропорцию в сайзере или максимальный размер. А так wxWrapSizer не смотрит надо ли в wxStaticText что-либо заворачивать.
Также есть функция wxStaticText::Wrap
Nikolay
Experienced Solver
Experienced Solver
Posts: 72
Joined: Wed Oct 10, 2007 4:27 am

Post by Nikolay »

wxStaticText::Wrap это не совсем то..., хочется динамический метод.
wxStaticText сам заворачивает тест, только надо поставить пропорцию в сайзере
А про это хотелось бы подробнее, это недавно появилось или я что-то не так делал раньше? но мне такого эффекта достигнуть не удавалось.
Best regards, Nikolay
wxWidgets in russian
Small Notes Manager and Clipboard Manager with History written with wxWidgets
Kolya
Experienced Solver
Experienced Solver
Posts: 85
Joined: Mon Dec 11, 2006 11:35 am
Location: /dev/null

Post by Kolya »

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")
deniman
In need of some credit
In need of some credit
Posts: 9
Joined: Sat May 02, 2009 7:46 pm

Re: Сайзеры и их возможности

Post by deniman »

Kolya wrote:Есть wxWrapSizer начиная с wxWidgets 2.9.0
Скачал с FTP wxWidgets-2.9.0-rc6 для MSW. Запустил семплы (с wxWrapSizer'ом там их два). Попробывал, порастягивал окошко туда сюда. Все свиду нормально. Изменил число эелентов, вот тут и увидел, как все "замечатльно". Впечатление такое, будто сайзер не доделал (возможно потому, что пока еще не финальная версия).

При первом появлении окна, некоторые контролы могут налазить друг на друга:
Image

При быстром ссужении, контролы не успевают перерисоваться. Также не всегда привильно срабатывает wrap:

Image Image

Kolya, за совет конечно спасибо. Но в нынешнем состоянии дел, wxWrapSizer мне не подходит. Сейчас пытаюсь сделать что-то свое, но столкнулся с проблеммой: при создании, сайзер не получает размеры, которые ему могут быть отведены владельцем (оно конечно понятно, ведь ситуации бывают разные). В результате не зная ширины, нет возможности узнать количество строк, а значит посчитать высоту сайзера. Если есть соображения на счет этого, буду рад всем советам.
Nikolay
Experienced Solver
Experienced Solver
Posts: 72
Joined: Wed Oct 10, 2007 4:27 am

Post by Nikolay »

Kolya wrote: Вот заплатка где это показано. Ее надо применить к минимальному примеру.

Спасибо, работает. Буду знать, интересно почему это у меня не получалось.
Best regards, Nikolay
wxWidgets in russian
Small Notes Manager and Clipboard Manager with History written with wxWidgets
deniman
In need of some credit
In need of some credit
Posts: 9
Joined: Sat May 02, 2009 7:46 pm

Re: Сайзеры и их возможности

Post by deniman »

Похоже, что вопро решен. Всем спасибо, тема закрыта.
Post Reply