Название: Вопросы по QGraphicsScene\View Отправлено: Nidxogg от Август 28, 2013, 21:47 Подскажите, возможно ли как-то сделать следующее:
1)Скрыть часть сцены (Требуется иногда убирать центральную часть) 2)Поделить сцену на 2 части и сделать одну неподвижной.(Есть шапка графика и график. При прокрутке через вертикальный-скроллбар шапка естественно "уезжает" и её не видно, а требуется чтобы было видно всегда. Пока решил только добавлением 2 qgraphicsview каждый со своей сценой, но выглядит плохо) 3)При использовании функции scale только по оси Х запретить itemу растягиваться.(Текст плывет) Название: Re: Вопросы по QGraphicsScene\View Отправлено: GreatSnake от Август 29, 2013, 07:19 1)Скрыть часть сцены (Требуется иногда убирать центральную часть) Создать в этом месте отдельный элемент и уже в нем создавать элементы этой центральной части. 2)Поделить сцену на 2 части и сделать одну неподвижной.(Есть шапка графика и график. При прокрутке через вертикальный-скроллбар шапка естественно "уезжает" и её не видно, а требуется чтобы было видно всегда. Пока решил только добавлением 2 qgraphicsview каждый со своей сценой, но выглядит плохо) Правильное решение, только почему выглядит плохо?Название: Re: Вопросы по QGraphicsScene\View Отправлено: Nidxogg от Август 29, 2013, 18:21 Цитировать Создать в этом месте отдельный элемент и уже в нем создавать элементы этой центральной части. Имеется ввиду какой-нибудь QRect, в который врисовывать остальные элементы?Просто элементы на сцене могут принадлежать сразу разным областям и скрытие их должно "обрезать". Цитировать Правильное решение, только почему выглядит плохо? У верхнего view скрыты все скроллбары. У нижнего необходимы оба.В итоге воспринимается не как полноценный график. Название: Re: Вопросы по QGraphicsScene\View Отправлено: Nidxogg от Сентябрь 04, 2013, 21:59 1 ещё актуально
2,3 реализовал по другому Появилась ещё парочка вопросов: 4)Как узнать текущий отображаемый кусок сцены(QRect) в координатах сцены? Нашел только через Код: viewport()->rect() 5)В методах mousePressEvent и mouseReleaseEvent класса, унаследованного от QGraphicsScene устанавливаю курсор (view - указатель на виджет QGraphicsView) При нажатии клавиши действительно устанавливается нужный тип курсора(2 для Qt::CrossCursor) При отжатии ставится дефолт. Проблема в том, что после рандомного числа нажатий\отжатий курсор при нажатии отображается как дефолтный и никак не реагирует на setCursor; Иногда данная проблема возникает сразу, при первом нажатии. P.S В классе item-a переопределен hoverMoveEvent, который изменяет курсор на границе item-а через setCursor - работает нормально всегда Код: void MainScene::mousePressEvent(QGraphicsSceneMouseEvent *event) 6)Для ускорения работы сделал прорисовку сетки графика переопределил метод в классе сцены Код: drawBackground(QPainter *painter, const QRectF &rect) Но потребовалось отрисовать фон. Сейчас делаю так: Код: painter->fillRect(rect,brush); |