Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt GUI _ Координаты виджета в QMdiSubWindow

Автор: skmdeveloper 18.12.2009, 0:49

Пишу программу. Фреймворк быстройи разработки бизнес-приложений. Взаимодействие с БД написал. Начал делать GUI. Возникла проблема.
Программа в MDI. Создаю окно QMdiSubWindow. Размежаю там свой виджет функкцией setWidget. Мне нужно для установленного виджета установить размеры. Для этого думаю, нужно изменять размеры самого самого дочернего окна . Как определить координаты моего виджета в дочернем окне?

Автор: skmdeveloper 18.12.2009, 10:12

Кажется нашел - http://qt.nokia.com/doc/4.6/qwidget.html#mapTo

Автор: Litkevich Yuriy 18.12.2009, 10:51

Цитата(skmdeveloper @ 18.12.2009, 3:49) *
Мне нужно для установленного виджета установить размеры.
дык, setSize().

Автор: skmdeveloper 18.12.2009, 14:01

resize() не работает. Потому что окно QMdiSubWindow по отношению к вставленному виджету родительское. Дочерние элементы подстраиваются под размеры родительского элемента а не наоборот.

Автор: skmdeveloper 18.12.2009, 14:32

Оказалось все гораздо проще.

Нормально так. Учитываем разницу в размерах междуMDI окном и виджетом.

int UiForm::setSize(int width, int height) {
...
    int dx = mdiSubWindow->width() - width();
    int dy = mdiSubWindow->height() - height();
    mdiSubWindow->resize(width + dx, height + dy);
}

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)