Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Размер рабочей области QMainWindow, Как получить размер рабочей области 
:(
    Опции темы
plica98
Дата 27.8.2012, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 12.3.2012

Репутация: нет
Всего: нет



Уважаемые Qt-шники.

Подскажите пожалуйста, можно ли (и как ) получить размер рабочей области главного окна QMainWindow, 
для задания размера сцены, установленной в нем.

PM MAIL   Вверх
bsa
Дата 27.8.2012, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



может твоя проблема решится путем использования QMainWindow::setCentralWidget() и в качестве параметра нужно передать указатель на объект QGraphicsView? Тогда размер QGraphicsView будет искомым (вот только не уверен, что он будет тебе уже нужен, так как, подозреваю, при его изменении сцена будет сама масштабироваться).
PM   Вверх
plica98
Дата 28.8.2012, 08:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 12.3.2012

Репутация: нет
Всего: нет



Bsa, я так и делаю.

Но это не решает мою проблему.
PM MAIL   Вверх
math64
Дата 28.8.2012, 08:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 23
Всего: 72



А в чем дело?
Устанви размер сцены по размеру её содержимого.
Установи масштаб вручную.
При необходимости появятся полосы прокрутки.
PM   Вверх
math64
Дата 28.8.2012, 08:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 23
Всего: 72



Если всё же нужно узнать размеры QGraphicsView - используй метод geometry();
Если нужно следить за изменениями этого размера - делай производный класс от QGraphicsView и переопределяй метод resizeEvent(QResizeEvent * event);
PM   Вверх
plica98
Дата 28.8.2012, 08:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 12.3.2012

Репутация: нет
Всего: нет



math64, хотелось бы использовать полностью разрешение экрана и
без использования полос прокрутки. То есть, чтобы содержимое сцены полностью было на экране.

PM MAIL   Вверх
math64
Дата 28.8.2012, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 23
Всего: 72



Ну так переопределяй resizeEvent() и вычисляй нужный тебе масштаб.
PM   Вверх
plica98
Дата 28.8.2012, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 12.3.2012

Репутация: нет
Всего: нет



math64, у меня размер рабочей области устанавливается максимальным и далее он не меняется.

Вопрос в том и состоит, как определить ее размер, чтобы задать размер сцены, установленной в рабочей области?
PM MAIL   Вверх
math64
Дата 28.8.2012, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 23
Всего: 72



Тогда resizeEvent() отработает один раз.
В крайнем случае - если не даёшь изменять размеры mainWindow - можно определить размеры после mainWindow.showMaximized();
PM   Вверх
plica98
Дата 28.8.2012, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 12.3.2012

Репутация: нет
Всего: нет



>>> ....можно определить размеры после mainWindow.showMaximized(); 

Как ?
PM MAIL   Вверх
math64
Дата 28.8.2012, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 23
Всего: 72



mainWindow->ui->graphicsView->geometry();
PM   Вверх
plica98
Дата 29.8.2012, 08:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 12.3.2012

Репутация: нет
Всего: нет



>>> math64,     mainWindow->ui->graphicsView->geometry(); 


Выдает установленный размер сцены.


PM MAIL   Вверх
bsa
Дата 29.8.2012, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



plica98, а ты установил graphicsView в качестве centralWidget?
PM   Вверх
plica98
Дата 29.8.2012, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 12.3.2012

Репутация: нет
Всего: нет



bsa, установил.
PM MAIL   Вверх
bsa
Дата 29.8.2012, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



Что-то мне не верится, что выдает размер сцены. Это совершенно разные вещи. Приведи конкретные примеры (размеры сцены, основного окна и centralWidget).
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0535 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.