2010-07-21 4 views
3

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

ответ

5

Я создаю своего рода «рамки», чтобы сделать это. Есть 2 подхода:

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

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

2

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(); 

Кроме того, если вам нужно написать или нарисовать текст см here.

Смежные вопросы