Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Igors от Февраль 05, 2015, 12:32



Название: Размер(ы) виджетов до show окна
Отправлено: Igors от Февраль 05, 2015, 12:32
Добрый день

В очередной раз забыл как это делал в прошлый раз :) Потыкав немного - вроде так работает
Код
C++ (Qt)
win->layout()->invalidate();
win->layout()->activate();
 
Где win есть top-level окно имеющее layout, Правильно ли я сделал?

Спасибо

Edit: виноват, правильно invalidate (было update)


Название: Re: Размер(ы) виджетов до show окна
Отправлено: Пантер от Февраль 05, 2015, 12:34
А разве оно сработает до реального появления окна? Ведь манагер окон может размеры и изменить.


Название: Re: Размер(ы) виджетов до show окна
Отправлено: Igors от Февраль 05, 2015, 12:49
А разве оно сработает до реального появления окна? Ведь манагер окон может размеры и изменить.
У меня сработало - хотя может это "частный случай", не проверял. Размеры окна заданы явно


Название: Re: Размер(ы) виджетов до show окна
Отправлено: Пантер от Февраль 05, 2015, 12:51
А разве оно сработает до реального появления окна? Ведь манагер окон может размеры и изменить.
У меня сработало - хотя может это "частный случай", не проверял. Размеры окна задаю явно
Скорее, частный. В тайлинге  всем рулит именно WM, он просто проигнорирует твои размеры. Сделай тестовый пример, я у себя попробую запустить и отпишусь.


Название: Re: Размер(ы) виджетов до show окна
Отправлено: Igors от Февраль 05, 2015, 13:31
Скорее, частный. В тайлинге  всем рулит именно WM, он просто проигнорирует твои размеры.
Не знаю что то за "тайлинг" и "WM" (наверное молодежный сленг), но я хочу знать размеры (а не задавать их)

Сделай тестовый пример, я у себя попробую запустить и отпишусь.
Аттач


Название: Re: Размер(ы) виджетов до show окна
Отправлено: Пантер от Февраль 05, 2015, 13:53
В следующий раз с pro файлом прикладывай, пожалуйста. Вот вывод:
Код:
 "Before layout activate"
QLabel(0x883bc0) QRect(0,0 100x30)
QTreeWidget(0x883ef0) QRect(0,0 100x30)
QPushButton(0x8c5c40) QRect(0,0 100x30)
QPushButton(0x8c89a0) QRect(0,0 100x30)

 "After layout activate"
QLabel(0x883bc0) QRect(10,10 780x13)
QTreeWidget(0x883ef0) QRect(10,28 780x519)
QPushButton(0x8c5c40) QRect(8,8 380x22)
QPushButton(0x8c89a0) QRect(393,8 379x22)

 "After show"
QLabel(0x883bc0) QRect(10,10 780x13)
QTreeWidget(0x883ef0) QRect(10,28 780x519)
QPushButton(0x8c5c40) QRect(8,8 380x22)
QPushButton(0x8c89a0) QRect(393,8 379x22)


WM - Windows Manager. А про тайлинг загугли.


Название: Re: Размер(ы) виджетов до show окна
Отправлено: Пантер от Февраль 05, 2015, 13:55
Но реальные размеры окна потом поменялись. Скорее всего, надо еще ловить активэйт.


Название: Re: Размер(ы) виджетов до show окна
Отправлено: GreatSnake от Февраль 05, 2015, 14:09
WM - Windows Manager.
Всё-таки правильнее будет "Window Manager"  ;)

Реальный размер окна будет перед вызовом QWidget::showEvent().
А дефолтный по QWidget::sizeHint().


Название: Re: Размер(ы) виджетов до show окна
Отправлено: Пантер от Февраль 05, 2015, 14:10
GreatSnake, сорьки, Window Manager.