Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Гурман от Февраль 17, 2010, 10:12



Название: решено: QGraphicsView при установке текущего элемента перемещает viewport
Отправлено: Гурман от Февраль 17, 2010, 10:12
На QGraphicsScene присутствует некоторая схема. Она изображается в соответствующем QGraphicsView. Когда сцена больше, чем вьюпорт, и мы изменяем текущий элемент так, что он остается виден во вьюпорте, то вместо того, чтобы просто перейти на другой элемент, QGraphicsView перемещает вьюпорт так, чтобы новый элемент оказался на той же позиции в окне, что был предыдущий. То есть, при любых перемещениях окно вьюпорта ползает над схемой, даже если просто переместились в ней на близко расположенный соседний элемент. Это очень здорово для каких-нибудь карт, или просмотра фотографий, но нам совершенно не подходит. Что сделать - не знаем, пробовали разные варианты. Как заставить вьюпорт перемещаться на схемой тогда и только тогда, когда текущая позиция оказалась вне вьюпорта?

такой эффект получаю, когда устанавливаю курсор программно, если курсор устанавливать кликом мыши, то он устанавливается, но вьюпорт не перемещается (как и должно быть)

где собака порылась?


Название: Re: QGraphicsView при установке текущего элемента перемещает viewport
Отправлено: Гурман от Февраль 25, 2010, 09:57
Решено. Viewport перемещал не QGraphicsView. Как выяснилось (этот код писал другой человек) - после разбора кнопок Left, Right, Up, Down производился вызов стандартного обработчика событий класса QObject, и для этих кнопок вызывался тоже. Он и перемещал.