crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Координаты виджета в QMdiSubWindow
skmdeveloper
  опции профиля:
сообщение 18.12.2009, 0:49
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 23
Регистрация: 18.9.2009
Пользователь №: 1107

Спасибо сказали: 0 раз(а)




Репутация:   0  


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


Студент
*

Группа: Участник
Сообщений: 23
Регистрация: 18.9.2009
Пользователь №: 1107

Спасибо сказали: 0 раз(а)




Репутация:   0  


Кажется нашел - http://qt.nokia.com/doc/4.6/qwidget.html#mapTo
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 18.12.2009, 10:51
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(skmdeveloper @ 18.12.2009, 3:49) *
Мне нужно для установленного виджета установить размеры.
дык, setSize().
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
skmdeveloper
  опции профиля:
сообщение 18.12.2009, 14:01
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 23
Регистрация: 18.9.2009
Пользователь №: 1107

Спасибо сказали: 0 раз(а)




Репутация:   0  


resize() не работает. Потому что окно QMdiSubWindow по отношению к вставленному виджету родительское. Дочерние элементы подстраиваются под размеры родительского элемента а не наоборот.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
skmdeveloper
  опции профиля:
сообщение 18.12.2009, 14:32
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 23
Регистрация: 18.9.2009
Пользователь №: 1107

Спасибо сказали: 0 раз(а)




Репутация:   0  


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

Нормально так. Учитываем разницу в размерах междуMDI окном и виджетом.
int UiForm::setSize(int width, int height) {
...
    int dx = mdiSubWindow->width() - width();
    int dy = mdiSubWindow->height() - height();
    mdiSubWindow->resize(width + dx, height + dy);
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 12.7.2020, 16:11