![]() |
|
|
![]()
|
|
| plica98 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 12.3.2012 Репутация: нет Всего: нет |
Уважаемые Qt-шники.
Подскажите пожалуйста, можно ли (и как ) получить размер рабочей области главного окна QMainWindow, для задания размера сцены, установленной в нем. |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
может твоя проблема решится путем использования QMainWindow::setCentralWidget() и в качестве параметра нужно передать указатель на объект QGraphicsView? Тогда размер QGraphicsView будет искомым (вот только не уверен, что он будет тебе уже нужен, так как, подозреваю, при его изменении сцена будет сама масштабироваться).
|
|||
|
||||
| plica98 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 12.3.2012 Репутация: нет Всего: нет |
Bsa, я так и делаю.
Но это не решает мою проблему. |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
А в чем дело?
Устанви размер сцены по размеру её содержимого. Установи масштаб вручную. При необходимости появятся полосы прокрутки. |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
Если всё же нужно узнать размеры QGraphicsView - используй метод geometry();
Если нужно следить за изменениями этого размера - делай производный класс от QGraphicsView и переопределяй метод resizeEvent(QResizeEvent * event); |
|||
|
||||
| plica98 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 12.3.2012 Репутация: нет Всего: нет |
math64, хотелось бы использовать полностью разрешение экрана и
без использования полос прокрутки. То есть, чтобы содержимое сцены полностью было на экране. |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
Ну так переопределяй resizeEvent() и вычисляй нужный тебе масштаб.
|
|||
|
||||
| plica98 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 12.3.2012 Репутация: нет Всего: нет |
math64, у меня размер рабочей области устанавливается максимальным и далее он не меняется.
Вопрос в том и состоит, как определить ее размер, чтобы задать размер сцены, установленной в рабочей области? |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
Тогда resizeEvent() отработает один раз.
В крайнем случае - если не даёшь изменять размеры mainWindow - можно определить размеры после mainWindow.showMaximized(); |
|||
|
||||
| plica98 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 12.3.2012 Репутация: нет Всего: нет |
>>> ....можно определить размеры после mainWindow.showMaximized();
Как ? |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
mainWindow->ui->graphicsView->geometry();
|
|||
|
||||
| plica98 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 12.3.2012 Репутация: нет Всего: нет |
>>> math64, mainWindow->ui->graphicsView->geometry();
Выдает установленный размер сцены. |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
plica98, а ты установил graphicsView в качестве centralWidget?
|
|||
|
||||
| plica98 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 12.3.2012 Репутация: нет Всего: нет |
bsa, установил.
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
Что-то мне не верится, что выдает размер сцены. Это совершенно разные вещи. Приведи конкретные примеры (размеры сцены, основного окна и centralWidget).
|
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |