Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Mashko от Апрель 29, 2009, 16:33



Название: dockWidget и его размер
Отправлено: Mashko от Апрель 29, 2009, 16:33
Подскажите, пожалуйста!

На dockWidget динамически добавляются объекты класса QDialog. Необходимо, чтобы при каждом новом объекте ширина dockWidget менялась соответсвенно с размером объекта.

Пробовала через лейауты, нифига не происходит  :-\


Название: Re: dockWidget и его размер
Отправлено: ритт от Апрель 29, 2009, 16:42
QLayout, setMinimumSize(...) и parentWidget()->updateGeometry();

а зачем такой изврат (диалоги на доквиджете)?


Название: Re: dockWidget и его размер
Отправлено: Mashko от Апрель 29, 2009, 16:48
Ну вот есть у меня такая часть в дипломе  ;D Руководство так пожелало


Название: Re: dockWidget и его размер
Отправлено: lit-uriy от Апрель 29, 2009, 17:51
2 Константин, ты чтоли ГНУтыми программами никогда не пользовался (GIMP, Inkscape, ...). Там изначально одельной россыпью окошек всё было, теперь научились внутрь запихивать в виде dockWidget'ов, в том числе и диалоги :)


Название: Re: dockWidget и его размер
Отправлено: ритт от Апрель 29, 2009, 18:11
gimp, inkscape - это всё gtk+
такими программами я пользуюсь только при необходимости, т.к. гтк не люблю - ни как выглядит, ни, тем более, как написан...там явно мозилла руку приложила )
а де там диалоги в доклетах, можешь конкретно указать? - посмотрю...


Название: Re: dockWidget и его размер
Отправлено: lit-uriy от Апрель 29, 2009, 18:31
Свойства документа в Inkscape например, раньше был отдельным диалогом, в 0.46 стал доком, если способ поведения поменять на россыпь окошек, то он вроде как окошко, но видно что с ещё одной панелью
(тык (http://lit-uriy.narod.ru/temp/Inkscape_1.png), тык (http://lit-uriy.narod.ru/temp/Inkscape_2.png))


Название: Re: dockWidget и его размер
Отправлено: Mashko от Май 03, 2009, 15:47
Ребят, всё равно не получается  :-\
И почему-то второй виджет (Main_Buttons) даже не видно на доке. Ткните меня носом, в чём ошибка???
Код:
QWidget *main_widget = new QWidget;
QVBoxLayout *layout = new QVBoxLayout;

layout->addWidget(widget);
layout->addWidget(Main_Buttons); // Main_Buttons и widget объявляются ранее в коде

main_widget->setLayout(layout);
dockWidget->setWidget(main_widget);

dockWidget->setMinimumSize(main_widget->minimumSize());
dockWidget->updateGeometry();




Название: Re: dockWidget и его размер
Отправлено: Karl-Philipp от Май 04, 2009, 11:01
Mashko, как создаётся переменная Main_Buttons и что она содержит?


Название: Re: dockWidget и его размер
Отправлено: Mashko от Май 04, 2009, 17:09
создается
Код:
MainButtonsClass *Main_Buttons = new MainButtonsClass;

Класс MainButtonsClass содержит виджет, созданный с помощью дизайнера, на нём просто 4 кнопки расположенных горизонтально друг за другом.
В его конструкторе setupUi() я, конечно, прописала (это уж я на всякий случай сообщаю  :-X)


Название: Re: dockWidget и его размер
Отправлено: Karl-Philipp от Май 04, 2009, 18:21
сложно что-то сказать не видя весь код, выкладывай минимальный компилируемый проект.


Название: Re: dockWidget и его размер
Отправлено: pastor от Май 04, 2009, 19:02
И почему-то второй виджет (Main_Buttons) даже не видно на доке.

Для MainButtonsClass установлен главный слой?