大家好,我是 qt 的新手,我在画一个点时遇到了麻烦。
我有一个大的 qMainWindow,它最终调用了一个 QgraphicsScene,在其中我需要绘制一个点,一个小像素,这就是我想要的,我想使用一个 QPainter,但我无法实例化一个。有任何想法吗??
您尝试执行的操作的示例代码在这里会有很大帮助。
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 对象,以便在适当的时候使用它来处理您的绘图。