总结几种 Qt的绘图方式。
(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); } } }
(1),QML 负责交互
(2),绘制交给QQuickPaintedItem 中的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"); }
参考:https://blog.csdn.net/p942005405/article/details/79891773
https://wizardforcel.gitbooks.io/qt-beginning/15.html