8.QT线程及timer使用--Apple的学习笔记

一,前言

之前提及了我将来的单机版小工具设想,应该会使用古老的MCV架构,然后可能会用到线程及配合timer使用。所以今天就先练习下线程。

二,自定义需求

使用timer和线程做一个5s倒计时显示工具。配色使用之前学习过的QSS。

三,遇到的问题

1. Widget窗体无法通过qss添加背景?
解决方法:因为没有打包mainwindow到Widget。我用的是ui文件。设置Widget后所有widget背景都变了。后来我添加了一个graphicview控件来添加qss背景图片。
2. 按钮按下后设置失效,qss如何设置?
解决方法:之前pushbutton只了解了hover悬停的qss设置方法,其实还是很多状态,比如disabled状态。所以设置按钮无效情况下。可以用QPushButton:disabled来设置。我一开始还想复杂了,差点要用重绘功能了,哈哈~
3. qss如何仅对同类的某一个对象进行美化?
解决方法:类后面加对象名即可,比如QPushButton#pushButton:hover
4. 窗体的最小化和最大化按钮隐藏方法?
解决方法:网上搜索了好多方法,我用的是setWindowFlags(Qt::WindowCloseButtonHint);
5. 如何做一个简单的提示音?
解决方法:qt6.02没有sound控件,最简单的提示音就用系统默认的QApplication::beep();

四,效果

image.png

动态效果:点击按钮启动倒计时,未完成5s倒计时则按钮失效。5s到后PC会发出beep声音提示


5s.gif

五,小结

这个倒计时器也算是一个综合性的小工具的练习。麻雀虽小,五脏俱全。将来可以作为独立的widget嵌入到其它工具中了。哈哈~

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容