Qt2D图形绘制

    技术2022-07-11  138

    总结几种 Qt的绘图方式。

    一,QML Canvas 

    (1),使用 Canvas 画布

    (2),onPaint 中绘制

    ApplicationWindow { visible: true width: 640 height: 480 Canvas { id: mycanvas width: 100 height: 200 anchors.centerIn: parent onPaint: { var ctx = getContext("2d"); ctx.fillStyle = Qt.rgba(1, 0, 0, 1); ctx.fillRect(0, 0, width, height); } } }

     

    二,QML  QQuickPaintedItem

    (1),QML 负责交互

    (2),绘制交给QQuickPaintedItem 中的QPainter

     

     

    三,QWidget QPainter

    (1),重载QWidget 的 paintEvent(QPaintEvent *)事件

    (2),利用QPainter 进行绘制

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

     

    四,QWidget   QGraphicsView 框架

    #include <QtGui> int main(int argc,char* argv[ ]) { QApplication app(argc,argv); QGraphicsScene *scene = new QGraphicsScene; //场景 QGraphicsRectItem *item = new QGraphicsRectItem(100,100,50,50); //矩形项 scene->addItem(item); //项添加到场景 QGraphicsView *view = new QGraphicsView; //视图 view->setScene(scene); //视图关联场景 view->show(); //显示视图 return app.exec(); }

     

     

    参考:https://blog.csdn.net/p942005405/article/details/79891773 

               https://wizardforcel.gitbooks.io/qt-beginning/15.html

     

    Processed: 0.009, SQL: 9