利用lora-scripts训练古风水墨画风格模型并发布至GitHub镜像
2026/1/3 11:41:22
在 Qt C++ 中,用于二维图形绘图的核心类主要集中在Qt GUI 模块(特别是 QtWidgets 和 QtGui)中。以下是常用的一些二维图形绘图相关类及其用途:
QWidget::paintEvent()中创建QPainter对象进行绘制。void MyWidget::paintEvent(QPaintEvent *event) { QPainter painter(this); painter.drawRect(10, 10, 100, 50); }QPainter绘制的目标设备。QWidget:窗口部件QImage:内存中的图像(支持像素级操作)QPixmap:屏幕优化的图像(适合显示)QPicture:记录并重放绘图命令QPrinter:用于打印输出QPainter的描边属性。QPen pen(Qt::red, 3, Qt::DashLine); painter.setPen(pen);QBrush brush(Qt::blue, Qt::BDiagPattern); painter.setBrush(brush);QPen、QBrush、QPalette等。QPainter::setFont()设置。QPainter::setTransform()应用变换。QPainter::drawPath()绘制。QPainterPath path; path.addRect(10, 10, 100, 50); path.addEllipse(50, 50, 80, 80); painter.drawPath(path);QPainter::setClipRegion()配合使用。QImage:支持直接像素访问,适合图像处理。QPixmap:针对屏幕显示优化,适合 GUI 显示。QBitmap:单色 QPixmap。QLinearGradientQRadialGradientQConicalGradientQLinearGradient gradient(0, 0, 100, 100); gradient.setColorAt(0, Qt::white); gradient.setColorAt(1, Qt::black); QBrush brush(gradient); painter.setBrush(brush);void MyWidget::paintEvent(QPaintEvent *) { QPainter painter(this); painter.setPen(QPen(Qt::red, 2)); painter.setBrush(QBrush(Qt::yellow)); painter.drawRect(10, 10, 100, 50); }如果你使用的是Qt Quick(QML),则绘图模型完全不同(基于 Scene Graph),但你问的是 C++,所以上述内容适用于Qt Widgets或自定义 QWidget/QGraphicsView场景。
需要更具体的例子(如绘制曲线、动画、坐标系变换等)也可以告诉我!