一,前言
之前提及了我将来的单机版小工具设想,应该会使用古老的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();
四,效果
动态效果:点击按钮启动倒计时,未完成5s倒计时则按钮失效。5s到后PC会发出beep声音提示
五,小结
这个倒计时器也算是一个综合性的小工具的练习。麻雀虽小,五脏俱全。将来可以作为独立的widget嵌入到其它工具中了。哈哈~