0

大家好,我是 qt 的新手,我在画一个点时遇到了麻烦。

我有一个大的 qMainWindow,它最终调用了一个 QgraphicsScene,在其中我需要绘制一个点,一个小像素,这就是我想要的,我想使用一个 QPainter,但我无法实例化一个。有任何想法吗??

4

1 回答 1

3

您尝试执行的操作的示例代码在这里会有很大帮助。

QPainter 使用:构造指向画布对象的 QPainter 对象,然后调用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 使用:通常,您使用 QGraphicsScene 来管理同时在视图周围浮动的大量对象。这对于一个简单的绘图小部件来说是多余的。QGraphicsScene 不是,iirc,QPainter 可以在其上绘制的有效画布。

相反,您创建一个适当类型的 QGraphicsItem(或子类),并覆盖paint 方法。当您的 QGrpahicsItem 添加到场景中时,库将传递给您一个 QPainter 对象,以便在适当的时候使用它来处理您的绘图。

于 2010-09-02T23:01:38.257 回答