#include “widget.h” #include “ui_widget.h” #include <QPainter> #include <QPicture>Widget::Widget(QWidget *parent) :讯享网QWidget(parent), ui(</span><span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> Ui::Widget){
讯享网ui</span>->setupUi(<span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">); </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 在QPixmap中画图</span> QPixmap pix(<span style="color: rgba(128, 0, 128, 1)">300</span>, <span style="color: rgba(128, 0, 128, 1)">300</span>); <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 纸的大小</span>pix.fill(Qt::red);讯享网QPainter p(</span>&<span style="color: rgba(0, 0, 0, 1)">pix); p.setPen(QPen(Qt::green, </span><span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">)); p.drawRect(</span><span style="color: rgba(128, 0, 128, 1)">10</span>, <span style="color: rgba(128, 0, 128, 1)">10</span>, <span style="color: rgba(128, 0, 128, 1)">280</span>, <span style="color: rgba(128, 0, 128, 1)">280</span><span style="color: rgba(0, 0, 0, 1)">); p.drawEllipse(</span><span style="color: rgba(128, 0, 128, 1)">150</span>, <span style="color: rgba(128, 0, 128, 1)">150</span>, <span style="color: rgba(128, 0, 128, 1)">50</span>, <span style="color: rgba(128, 0, 128, 1)">50</span><span style="color: rgba(0, 0, 0, 1)">); pix.save(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">D:\mypixmap.png</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">); </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 指定绘图设备 1. 构造函数中(参数是绘图设备) </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 2. begin(参数是绘图设备) </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> end(); </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 在QImage中画图</span> QImage img(<span style="color: rgba(128, 0, 128, 1)">300</span>, <span style="color: rgba(128, 0, 128, 1)">300</span>, QImage::Format_RGB32); <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 纸的大小</span>img.fill(Qt::red);p.begin(</span>&<span style="color: rgba(0, 0, 0, 1)">img); p.setPen(QPen(Qt::green, </span><span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">)); p.drawRect(</span><span style="color: rgba(128, 0, 128, 1)">10</span>, <span style="color: rgba(128, 0, 128, 1)">10</span>, <span style="color: rgba(128, 0, 128, 1)">280</span>, <span style="color: rgba(128, 0, 128, 1)">280</span><span style="color: rgba(0, 0, 0, 1)">); p.drawEllipse(</span><span style="color: rgba(128, 0, 128, 1)">150</span>, <span style="color: rgba(128, 0, 128, 1)">150</span>, <span style="color: rgba(128, 0, 128, 1)">50</span>, <span style="color: rgba(128, 0, 128, 1)">50</span><span style="color: rgba(0, 0, 0, 1)">); p.end(); img.save(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">D:\myImage.png</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">); </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 在QPicture中画图 </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 1. 保存的是绘图步骤 -- 画家类 </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 2. 不是图片, 二进制文件(save保存生成的文件) </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 3. 不依赖平台</span>QPicture pic; // 纸的大小 p.begin(&pic); p.setPen(QPen(Qt::green, 10)); p.drawRect(10, 10, 280, 280); p.drawEllipse(150, 150, 50, 50); p.end(); pic.save(“D:\mypic.aaa”); }// QWidget // QPixmap QImage QPicture QBitmap(黑白图片) // QBitmap 父类 QPixmap // QPixmap – 图片类, 主要用来显示, 它针对于显示器显示做了特殊优化, 依赖于平台的, 只能在主线程中使用(UI线程) // QIamge – 图片类 , 不依赖有平台, (图片传输 , 可以在多线程中对其进行操作) Widget::~Widget() {讯享网</span><span style="color: rgba(0, 0, 255, 1)">delete</span><span style="color: rgba(0, 0, 0, 1)"> ui;}void Widget::paintEvent(QPaintEvent *) {QPainter p(</span><span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">); QPicture pic; pic.load(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">D:\mypic.png</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">); p.drawPicture(</span><span style="color: rgba(128, 0, 128, 1)">100</span>, <span style="color: rgba(128, 0, 128, 1)">100</span><span style="color: rgba(0, 0, 0, 1)">, pic);}
讯享网


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/143653.html