Russian Qt Forum
Октябрь 04, 2024, 02:17 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Фиксированный размер viewport при изменении размеров приложения.  (Прочитано 6088 раз)
nike1987
Гость
« : Июль 25, 2011, 11:39 »

Вообщем необходимо чтобы при изменении размеров приложение размер окна в координатах сцены оставался неизменным.Насколько я понимаю нужно переопределять resizeEvent и там делать все манипуляции?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Июль 25, 2011, 11:47 »

Вообщем необходимо чтобы при изменении размеров приложение размер окна в координатах сцены оставался неизменным.Насколько я понимаю нужно переопределять resizeEvent и там делать все манипуляции?
Да. Вот так:
Код
C++ (Qt)
fitInView( QRect( QPoint( 0, 0 ), maximumViewportSize() ) );
« Последнее редактирование: Июль 25, 2011, 12:04 от GreatSnake » Записан

Qt 5.11/4.8.7 (X11/Win)
nike1987
Гость
« Ответ #2 : Июль 25, 2011, 11:57 »

У меня даже метода такого нету.Версия Qt 4.7.2.
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #3 : Июль 25, 2011, 12:02 »

У меня даже метода такого нету.Версия Qt 4.7.2.
Упс, сорри, QGraphicsView::fitInView().
« Последнее редактирование: Июль 25, 2011, 12:04 от GreatSnake » Записан

Qt 5.11/4.8.7 (X11/Win)
nike1987
Гость
« Ответ #4 : Июль 25, 2011, 14:33 »

Цитировать
fitInView( QRect( QPoint( 0, 0 ), maximumViewportSize() ) );
Не знаю почему вы мне написали именно с аргументом maximumViewportSize().Честно говоря используя fitInView получаю сильнейшие лаги, что в принципе не удивительно.Возможно ли сделать по-другому?По сути мне нужно чтоб в сцене всё оставалось неименно, размер сцены и размер вьюпорта в сцене?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #5 : Июль 25, 2011, 14:39 »

Тогда я не понимаю, как можно изменить окно QGraphicsView не меняя вьюпорта? Ведь видимая часть QGraphicsView это и есть вьюпорт?
Записан

Qt 5.11/4.8.7 (X11/Win)
vintik
Гость
« Ответ #6 : Июль 25, 2011, 22:41 »

Так может надо установить в качестве вьюпорта некий виджет, у которого задать размер и назначить политику изменения размеров как QWidget::setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed) , а потом этот виджет сунуть уже в окно программы.
Да собственно, можно и так, наверное, QGraphicsView::setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)
Записан
nike1987
Гость
« Ответ #7 : Июль 29, 2011, 10:34 »

Цитировать
Так может надо установить в качестве вьюпорта некий виджет, у которого задать размер и назначить политику изменения размеров как QWidget::setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed) , а потом этот виджет сунуть уже в окно программы.
Да собственно, можно и так, наверное, QGraphicsView::setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)
В таком случе сам виджет вьювера будет иметь постоянный размер относительно окна, а мне необходимо чтобы внутри сцены размер вьюпорта не изменялся.
Записан
vintik
Гость
« Ответ #8 : Июль 31, 2011, 11:42 »

http://doc.crossplatform.ru/qt/4.7.x/qgraphicsview.html#fitInView

походу дела, GreatSnake посоветовал то что нужно...
Если не подходит, то лучше на конкретном примере разъяснить задачу
« Последнее редактирование: Июль 31, 2011, 11:47 от vintik » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.143 секунд. Запросов: 23.