c++ - qt中QGraphicsScene中的绘画

标签 c++ qt qgraphicsscene qpainter

我正在尝试在 QGraphicsScene 中画一条线。我知道如何在场景中添加项目,但不知道如何在使用画家绘制的场景中添加项目。下面是我要实现的代码:

void MainWindow::drawLine(){
    painter->drawLine(100,10,200,20);
    item = ??
    scene->addItem(item);
    ui->graphicsView->setScene(scene);
    qDebug() << "Line Created";
}

如您所见,该项目未在上面定义。如何为它创建一个项目以便在场景中绘制它?

最佳答案

您应该继承QGraphicsItem 并覆盖paint 方法。我找到了一个很好的教程:tutorial.

请记住,在您继承的项中,您必须至少实现两个纯虚方法 paintboundingRect。通过查看 QGraphicsItem 的文档,您可以看到这些函数是纯虚拟的:QGraphicsItem.

关于c++ - qt中QGraphicsScene中的绘画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24625538/

相关文章:

c++ - Win API,每 X 秒更新一次静态控件

python - 在 QGraphicSscene 中创建带有可移动节点的闭合路径

c++ - QT creator - 'QGraphicsScene' 没有命名类型

windows - 使用 Qt 的非标准窗口

QML 中基于 WebSocket 的 Qt WebView 和 WebChannel

qt - 模块 "QtQuick"版本 2.5 未安装

c++ - Qt - 使用 QTransform(或类似的),缩放内部 QRect 到/从 QGraphics

c++ - C/C++ 的轻量级 OBJ 网格文件加载器?

c++ - Windows 服务与 NamedPipe 之间的访问安全

c++ - 如何防止模板类的实例化?