Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: nike1987 от Июль 25, 2011, 11:39



Название: Фиксированный размер viewport при изменении размеров приложения.
Отправлено: nike1987 от Июль 25, 2011, 11:39
Вообщем необходимо чтобы при изменении размеров приложение размер окна в координатах сцены оставался неизменным.Насколько я понимаю нужно переопределять resizeEvent и там делать все манипуляции?


Название: Re: Фиксированный размер viewport при изменении размеров приложения.
Отправлено: GreatSnake от Июль 25, 2011, 11:47
Вообщем необходимо чтобы при изменении размеров приложение размер окна в координатах сцены оставался неизменным.Насколько я понимаю нужно переопределять resizeEvent и там делать все манипуляции?
Да. Вот так:
Код
C++ (Qt)
fitInView( QRect( QPoint( 0, 0 ), maximumViewportSize() ) );


Название: Re: Фиксированный размер viewport при изменении размеров приложения.
Отправлено: nike1987 от Июль 25, 2011, 11:57
У меня даже метода такого нету.Версия Qt 4.7.2.


Название: Re: Фиксированный размер viewport при изменении размеров приложения.
Отправлено: GreatSnake от Июль 25, 2011, 12:02
У меня даже метода такого нету.Версия Qt 4.7.2.
Упс, сорри, QGraphicsView::fitInView().


Название: Re: Фиксированный размер viewport при изменении размеров приложения.
Отправлено: nike1987 от Июль 25, 2011, 14:33
Цитировать
fitInView( QRect( QPoint( 0, 0 ), maximumViewportSize() ) );
Не знаю почему вы мне написали именно с аргументом maximumViewportSize().Честно говоря используя fitInView получаю сильнейшие лаги, что в принципе не удивительно.Возможно ли сделать по-другому?По сути мне нужно чтоб в сцене всё оставалось неименно, размер сцены и размер вьюпорта в сцене?


Название: Re: Фиксированный размер viewport при изменении размеров приложения.
Отправлено: GreatSnake от Июль 25, 2011, 14:39
Тогда я не понимаю, как можно изменить окно QGraphicsView не меняя вьюпорта? Ведь видимая часть QGraphicsView это и есть вьюпорт?


Название: Re: Фиксированный размер viewport при изменении размеров приложения.
Отправлено: vintik от Июль 25, 2011, 22:41
Так может надо установить в качестве вьюпорта некий виджет, у которого задать размер и назначить политику изменения размеров как QWidget::setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed) , а потом этот виджет сунуть уже в окно программы.
Да собственно, можно и так, наверное, QGraphicsView::setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)


Название: Re: Фиксированный размер viewport при изменении размеров приложения.
Отправлено: nike1987 от Июль 29, 2011, 10:34
Цитировать
Так может надо установить в качестве вьюпорта некий виджет, у которого задать размер и назначить политику изменения размеров как QWidget::setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed) , а потом этот виджет сунуть уже в окно программы.
Да собственно, можно и так, наверное, QGraphicsView::setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)
В таком случе сам виджет вьювера будет иметь постоянный размер относительно окна, а мне необходимо чтобы внутри сцены размер вьюпорта не изменялся.


Название: Re: Фиксированный размер viewport при изменении размеров приложения.
Отправлено: vintik от Июль 31, 2011, 11:42
http://doc.crossplatform.ru/qt/4.7.x/qgraphicsview.html#fitInView

походу дела, GreatSnake посоветовал то что нужно...
Если не подходит, то лучше на конкретном примере разъяснить задачу