qt spinbox 设置小数位数_Qt入门系列(三)

本文介绍了如何在Qt中自定义控件,封装 SpinBox 设置小数位数,以及详细讲解了Qt中的事件处理,包括鼠标事件、定时器、事件分发器、事件过滤器、绘图事件等。通过实例展示了文件操作和QFile读写,以及QImage、QPixmap和QPicture的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文继续:

YYLi-CV:Qt入门系列(二)​zhuanlan.zhihu.com

7.自定义控件封装

增加新的sw.ui界面

选装父文件—>添加文件-->Qt--->设计师界面->命名smallWidget(简称sw)

选择sw.ui->选择Spin Box和Horizontal Slider进行水平布局->但此时运行还是原来的w.ui--》想把sw.ui用在原来w.ui上

查看sw.ui的类型widget-》在w.ui上添加Widget控件-》右键选提升为->把类名复制进去-》点击添加-》点击提升--》运行出现!

现在要实现两者同时移动

自己输入空间查找想要的信号和槽函数Public Slots,如子类中没有,查找父类的槽函数

在sw.cpp中添加代码:

//QSpingBox移动,QSlider跟着移动

结果显示:

ea61cf4fa7683e82f24315a4f5baf764.png

需求:设置数字和获取数字

在w.ui上添加两个按钮push Botton

在sw.h和sw.cpp中设置接口和实现

//设置数组

在w.cpp中进行关联

//获取到控件当前的值

结果显示:

e6a32ec03de0b97d43db3cdf56d376c0.png

8.事件

8.1.鼠标事件

->ui.上选择一个Label控件

-》父节点新添加一个class Label(简称l)

在l.h和l.cpp中添加实现:

//鼠标进入事件

注意,此时控件与鼠标没有关联,进行关联

把新建的class l改成继承于QLabel。

在Label控件上右键提升为--》Label,生成即可

结果显示:

eda7bf29b5e4553a4b7d218f464d04fb.png

此时需要重写鼠标按下,离开等,在l.cpp中继续添加:

结果显示:

fb1593a96c3ae06d93a8053375aa4b79.png

8.2.定时器

需求:定时器加数,每隔1秒中加1

继续上面代码:

在w.cpp中实现

结果显示:

2e28bd2d70c3d1039359ff99c4bb2336.png

另外一种实现方式,大力推荐:

//类中实现

结果显示:

381aaa5a62014f8ee13874697060b7d0.png

8.3.事件分发器

概况:

a3d0417a2e739ea5fe7b2beef07041c1.png

继续上文代码,拦截鼠标按下

在l.cpp中添加:

bool 

结果显示:

ff94a648c2c4c9bcc2e2303727d28ef7.png

8.4.事件过滤器

概述:

8033d3a244a2bf6a95b7795ff069a06a.png

用事件过滤器对鼠标按下进行拦截

在w.cpp中继续

{ 

结果显示:

48e6b604cdea6ec5c7df5e1a3cce144a.png

8.5.绘图事件

新建Q3

在w.cpp中添加代码:

void 

结果显示:

6d4e128c45dd1a5873f4b956d45fb225.png

8.6.绘图高级设置

将上面注释

将图像进行移动,调色,抗锯齿处理等

在w.cpp中添加代码:

QPainter 

结果显示:

331fc322c562250be61e34d13a134f3a.png

8.7.手动调用绘图事件

利用画家画资源图片

上面注释

添加资源图片,不多说,前面已经讲过。

在w.cpp中添加代码:

Widget

结果显示:

c5eb1f40cacd82f87c5df924ba174ed0.png

需求:利用定时器进行自动移动

在w.cpp中添加代码:

Widget

8.8.绘图设备

8.8.1.QPixmap

直接保存到本地

画一个圆保存在本地

在w.cpp中添加代码:

Widget

保存结果:

ac7b891e2abdce41d4b195c6551f81ec.png

8.8.2.QImage

实现1的功能

//QImage绘图设备,可以对像素进行访问

需求:加载资源文件,并改变像素值

加载资源图片不能再熟悉类,省略

在w.cpp中添加代码

void 

8.8.3.QPicture

主要用来记住代码,重新打开非常见后缀名的图片,别人打不开啊,只能用我的代码打开

在w.cpp中添加代码:

Widget

结果打开了:

009c19a950897bbbdb0e07565107d2ac.png

9.文件

9.1.QFile读和写

需求:选取文件路径,打开文件

1.ui上选取Line Edit和Push Button水平对齐,再选取Text Edit,三者垂直布局

2.在w.cpp上添加代码

Widget

结果显示:

c91f869bec2f089c43f64ba7a3a66783.png

9.2.QFileInfo信息流

需求:读取文件的属性,比如后缀名,修改日期等

在1中代码基础上添加:

Widget

结果显示:

621f6cbe86d8e92a6ff18b2438bf9379.png

笔记如下:

77a6ab9a2c3e0b5f31fd4730b22743db.png

653699e391c016c17d2505834b6efad1.png

821c0ba1ba7b4c7d7abf08870babff65.png

7d0b69a0234a9b2b603ed3f03fe187b2.png

83b41aefa710dc4da6915bc778431a03.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值