《学习Qt之路2》笔记:Qt之各种画笔、画刷和绘制
2013-08-16 18:00
417 查看
这里直接调用了PaintEvent()事件。
代码如下:
代码如下:
//paintedwidget.h #ifndef PAINTEDWIDGET_H #define PAINTEDWIDGET_H #include <QtWidgets/QWidget> #include "ui_paintedwidget.h" #include <QPainter> class PaintedWidget : public QWidget { Q_OBJECT public: PaintedWidget(QWidget *parent = 0); ~PaintedWidget(); protected: void paintEvent(QPaintEvent *); private: Ui::PaintedWidgetClass ui; }; #endif // PAINTEDWIDGET_H //paintedwidget.cpp #include "paintedwidget.h" PaintedWidget::PaintedWidget(QWidget *parent) : QWidget(parent) { ui.setupUi(this); resize(800, 600); setWindowTitle(tr("Paint Demo")); } PaintedWidget::~PaintedWidget() { } void PaintedWidget::paintEvent(QPaintEvent *) { /////////反锯齿 /*QPainter painter(this); painter.setPen(QPen(Qt::black, 5, Qt::DashDotLine, Qt::RoundCap)); painter.setBrush(Qt::yellow); painter.drawEllipse(50, 150, 200, 150); painter.setRenderHint(QPainter::Antialiasing, true); painter.setPen(QPen(Qt::black, 5, Qt::DashDotLine, Qt::RoundCap)); painter.setBrush(Qt::yellow); painter.drawEllipse(400,150, 200, 150);*/ ////////渐变 //QPainter painter(this); //painter.setRenderHint(QPainter::Antialiasing, true); //QLinearGradient linearGradient(60, 50, 200, 200);//渐变的起点和终点 //linearGradient.setColorAt(0.2, Qt::white); //linearGradient.setColorAt(0.6, Qt::green); //linearGradient.setColorAt(1, Qt::black); //painter.setBrush(QBrush(linearGradient)); //painter.drawEllipse(50, 50, 200, 150); ////////色轮 //QPainter painter(this); //painter.setRenderHint(QPainter::Antialiasing, true); //const int r = 150; //QConicalGradient conicalGradient(0, 0, 0); //前两参数表示角度渐变的中心点,第三个参数表示渐变的起始角度 //conicalGradient.setColorAt(0.0, Qt::red); //conicalGradient.setColorAt(60.0/360.0, Qt::yellow); //conicalGradient.setColorAt(120.0/360.0, Qt::green); //conicalGradient.setColorAt(180.0/360.0, Qt::cyan); //conicalGradient.setColorAt(240.0/360.0, Qt::blue); //conicalGradient.setColorAt(300.0/360.0, Qt::magenta); //conicalGradient.setColorAt(1.0, Qt::red); //painter.translate(r, r); //将坐标的原点设置到(X, Y) //QBrush brush(conicalGradient); //painter.setPen(Qt::NoPen); //painter.setBrush(brush); //painter.drawEllipse(QPoint(0, 0), r , r); } #include "paintedwidget.h" #include <QtWidgets/QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); PaintedWidget w; w.show(); return a.exec(); }
相关文章推荐
- 现代OpenGL+Qt学习笔记之六:绘制可旋转、带光照效果的三维物体
- 绘制系统(绘制系统简介,画笔和画刷,渐变系统,坐标系统,绘制文字和图片,图形视图框架)
- 《学习Qt之路2》笔记:QT自定义信号槽
- Qt学习之2D绘图(画刷和画笔)
- 设计一种可绘制各种形状的画笔Painter类,要求用抽象原则。
- Qt开发中的实用笔记三--关于各种类的零碎知识点:
- MFC画笔\画刷\加载位图\加载外部图片(LoadImage)\调色板\区域绘制、 复杂图像绘制等14.5.6
- 《学习Qt之路2》笔记:Qt之QmessageBox
- CSS学习笔记(8)--纯CSS绘制三角形(各种角度)
- 【win32】day07-图形绘制/GDI绘图对象-画笔/画刷
- 【Qt笔记】绘制设备
- 孙鑫老师教学视频学习笔记――单文档中实现画笔及画刷
- Qt学习之2D绘图(画刷和画笔)
- 《学习Qt之路2》笔记:Qt之事件
- 用 GDI 操作 EMF 文件[8]: 绘制图元文件时改变画笔与画刷
- OpenGL_Qt学习笔记之_02(绘制简单平面几何图形)
- canvas学习笔记:绘制各种图形
- Qt学习之2D绘图(画刷和画笔)
- MFC基本图形的绘制(一)设备环境类CDC、画笔和画刷
- Qt学习之2D绘图(画刷和画笔)