QT c ++ точка рисования qpainter qgraphicscene - PullRequest
0 голосов
/ 03 сентября 2010

Черт возьми, я новичок в qt, и мне трудно нарисовать одну единственную точку.

У меня есть большое qMainWindow, которое в конечном итоге вызывает QgraphicsScene, и внутри него мне нужно нарисовать одну точку, один маленький пиксель, это все, что я хочу, я хочу использовать QPainter, но у меня возникают проблемы с его созданием. Есть идеи ??

1 Ответ

3 голосов
/ 03 сентября 2010

Пример кода того, что вы пытаетесь сделать, очень помог бы здесь.

Использование QPainter : Создайте объект QPainter, указывающий на объект canvas, и затем вызовите painter_obj.drawPoint(x,y);. Обратите внимание, что QPainter должен быть создан в стеке, а не в куче, чтобы деструктор объекта мог запустить реальный чертеж.

Пример из документации:

void SimpleExampleWidget::paintEvent(QPaintEvent *)
 {
     QPainter painter(this);
     painter.setPen(Qt::blue);
     painter.setFont(QFont("Arial", 30));
     painter.drawText(rect(), Qt::AlignCenter, "Qt");
 }

QGraphicsScene use : Обычно вы используете QGraphicsScene для управления большим количеством объектов, плавающих вокруг вида одновременно. Это излишне для простого виджета рисования. QGraphicsScene не является, iirc, допустимым холстом для рисования QPainter.

Вместо этого вы создаете QGraphicsItem (или подкласс) соответствующего типа и переопределяете метод рисования. Когда ваш QGrpahicsItem будет добавлен в сцену, библиотека передаст вам объект QPainter, который будет использоваться для обработки вашего рисунка в случае необходимости.

...