Пишу программу. Фреймворк быстройи разработки бизнес-приложений. Взаимодействие с БД написал. Начал делать GUI. Возникла проблема.
Программа в MDI. Создаю окно QMdiSubWindow. Размежаю там свой виджет функкцией setWidget. Мне нужно для установленного виджета установить размеры. Для этого думаю, нужно изменять размеры самого самого дочернего окна . Как определить координаты моего виджета в дочернем окне?
Кажется нашел - http://qt.nokia.com/doc/4.6/qwidget.html#mapTo
resize() не работает. Потому что окно QMdiSubWindow по отношению к вставленному виджету родительское. Дочерние элементы подстраиваются под размеры родительского элемента а не наоборот.
Оказалось все гораздо проще.
Нормально так. Учитываем разницу в размерах между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)