Qt小程序(六)-IconEditor

目录

前言

虽然在Qt中可以不使用窗口编程,但是不使用窗口编程,Qt又有什么意义呢!本部分意图实现一个自定义窗口部件!学习,分享,感谢!

paintEvent重写

paintEvent(QPaintEvent* )函数是QWidget类中的虚函数,用于ui的绘制,会在多种情况下被其他函数自动调用,比如update()。一般使用时都会从QWidget类中继承void paintEvent(QPaintEvent *);函数。
因为只是需要使用绘图函数,所以update()自动调用paintEvent(QPaintEvent *)对我来说就足够了。

QPainter类

详细参考这位大神的博客:一去丶二三里,这里引用其中一部分。

QPainter用于执行绘图操作,其提供的API在GUI或QImage、QOpenGLPaintDevice、QWidget和QPaintDevice显示图形(线、形状、渐变等)、文本和图像。
绘图系统由QPainter完成具体的绘制操作,QPainter类提供大量高度优化的函数来完成GUI编程所需要的大部分绘制工作。它可以绘制一切想要的图形,从最简单的一条直线到其他任何复杂的图形,例如:点、线、矩形、饼状图、多边形、贝塞尔弧线等。此外,QPainter也支持一些高级特性,例如反走样、像素融合、渐变填充和矢量路径等,QPainter也执行线性变换,例如平移旋转缩放

代码

这个程序的功能是读入一张图片,通过设置放大倍数,可以把图片在原始的尺寸上放大,相当于把像素点放大,如果放大系数大于3,就画出对应像素点的小方块。然后通过鼠标事件可以设置每一个放大的像素点的颜色。
- main.cpp

#include "iconeditor.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    IconEditor w;

    w.setWindowTitle(QObject::tr("Icon Editor"));
    // this function will call update()
    w.setIconImage(QImage(":/images/mouse.png"));
    w.setPenColor(Qt::yellow);    // 设置画笔颜色
    w.show();

    return a.exec();
}
  • iconeditor.cpp
#include "iconeditor.h"
#include <QPaintEvent>

IconEditor::IconEditor(QWidget *parent)
    : QWidget(parent)
{
    setAttribute(Qt::WA_StaticContents);    // update ignore existed
    se
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值