как использовать графический вид QT для рисования - PullRequest
3 голосов
/ 21 июля 2010

я пытаюсь использовать графический вид QT для рисования линий, можно рисовать несколько объектов в сцене, но возможно ли сделать рисование (линий в реальном времени) внутри сцены Qt и как?
aПример кода будет высоко ценится
заранее спасибо

Ответы [ 2 ]

5 голосов
/ 21 июля 2010

Я создаю своего рода «Framework» для этого. Есть 2 подхода:

  1. Обработка сообщений мыши, создание объекта QGraphicsLineItem , добавление в сцену и изменение его в процессе создания.
  2. Получите QGraphicsScene, создайте QGraphicsLineItem, но НЕ добавьте в сцену, нарисуйте его, когда drawForeground, добавьте его в сцену после завершения создания.

Поскольку QGraphicsScene будет индексировать объекты в дереве BSP по умолчанию, и это будет влиять на производительность при частом изменении элементов, вы можете получить более высокую производительность при использовании 2-го подхода во время создания, но больше кода работает.

2 голосов
/ 23 июля 2010

1) Создание GraphicsView и Scene

m_graphScen = new QGraphicsScene;
m_graphScen->setSceneRect(0,0,790,290);

m_graphView = new QGraphicsView;
m_graphView->setFixedSize(800, 300);
m_graphView->setScene(m_graphScen);

2) Создайте слот, который выполняет следующие действия, обрабатывая события мыши:

m_graphScen->addLine(0, 250, 700, 250, QPen(QBrush(Qt::black),1));
m_graphView->show();

Также, если вам нужно написать или нарисовать текст, см. здесь .

...