番茄钟软件
1.为什么想写这个软件
因为之前本人一直在用pyqt开发小的软件,实现python爬虫的视频资源搜索的程序ui。
在其中,发现了很多的样式开发的问题,从qcompleter,qtablewidget的问题,以及软件整体臃肿、遇到问题寻找资料困难的问题。
所以,我转向了基于c++的qt。
因为学了,所以想写一个小程序试试水。
而之前一直在用的一个番茄钟是steam里免费的chill drive,如图。
这是一个很优秀的番茄钟软件,可以计时,听歌,还有很优秀的背景画面。
但由于本人经常用电脑工作,像这样全屏的应用并不适合。
所以一拍即合,我写了一个桌面挂件式的番茄钟。 并在这里,留下一些足迹。
2.创作中实现的关键功能以及一些小技巧
整体使用了qt creater完成代码编写。
图标资源获取
我目前用下来最棒的图标网站,全部可使用svg格式,自定义大小。
https://yesicon.app/bi
同时,ico文件可以从svg转换,网址如下。
https://www.aconvert.com/cn/icon/svg-to-ico/
实现无边框
无边框界面是让qt程序变好看的第一步。
这里我参考的是github开源的qt无边框实现。
大概分为三步。
第一、改成透明背景,以及无边框
setAttribute(Qt::WA_TranslucentBackground);
setWindowFlags(Qt::FramelessWindowHint|this->windowFlags());
第二、改写窗口的四个函数,实现背景的样式以及软件拖动效果。
void mousePressEvent(QMouseEvent*event) override;
void mouseMoveEvent(QMouseEvent*event) override;
void mouseReleaseEvent(QMouseEvent*event) override;
void paintEvent(QPaintEvent * event) override;
第三、实现新的放大、缩小、关闭的效果。
void closeEvent(QCloseEvent *event