QT-事件-绘图设备-QPixmap、QImage、QPicture
widget.h
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #ifndef WIDGET_H #define WIDGET_H #include namespace Ui { class Widget; } class Widget : public QWidget { Q_OBJECT public : explicit Widget(QWidget *parent = 0); ~Widget(); //绘图事件 void paintEvent(QPaintEvent *); private : Ui::Widget *ui; }; #endif // WIDGET_H |
widget.cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | #include "widget.h" #include "ui_widget.h" #include #include #include #include Widget::Widget(QWidget *parent) : QWidget(parent), ui( new Ui::Widget) { ui->setupUi( this ); // //Pixmap绘图设备 专门为平台做了显示的优化 // QPixmap pix(300,300); // //填充颜色 // pix.fill(Qt::white); // //声明画家 // QPainter painter(&pix); // painter.setPen(QPen(Qt::green)); // painter.drawEllipse(QPoint(150,150) , 100,100); // //保存 // pix.save("E:\\pix.png"); //QImage 绘图设备 可以对像素进行访问 // QImage img(300,300,QImage::Format_RGB32); // img.fill(Qt::white); // QPainter painter(&img); // painter.setPen(QPen(Qt::blue)); // painter.drawEllipse(QPoint(150,150) , 100,100); // //保存 // img.save("E:\\img.png"); //QPicture 绘图设备 可以记录和重现 绘图指令 QPicture pic; QPainter painter; painter.begin(&pic); //开始往pic上画 painter.setPen(QPen(Qt::cyan)); painter.drawEllipse(QPoint(150,150) , 100,100); painter.end(); //结束画画 //保存到磁盘 pic.save( "E:\\pic.zt" ); } //绘图事件 void Widget::paintEvent(QPaintEvent *) { // QPainter painter(this); // //利用QImage 对像素进行修改 // QImage img; // img.load(":/Image/Luffy.png"); // //修改像素点 // for(int i = 50 ;i < 100 ; i++) // { // for(int j = 50 ; j < 100;j++) // { // QRgb value = qRgb(255,0,0); // img.setPixel(i,j,value); // } // } // painter.drawImage(0,0,img); QPainter painter( this ); //重现QPicture的绘图指令 QPicture pic; pic.load( "E:\\pic.zt" ); painter.drawPicture(0,0,pic); } Widget::~Widget() { delete ui; } |
天道酬勤 循序渐进 技压群雄
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)