PDF学习宝-开发日记2-自定义标题栏

不好用,自己造

众所周知Qt的标题栏是万年不变跟不上时代需求了,但凡对软件稍微有点审美要求的都会使用自己造的标题栏,这是因为在Qt5.15之前中没有直接针对标题栏自定义的API。既然不好用,咱就自己造。

前言

在创建工程时,我选择了QWidget基类,这是因为后期在进行界面美化时对标题栏的操作会更加方便。但是在前期就需要自己来绘制所有的标题栏上的控件了,这些控件主要就是logo、标题栏文字、窗口最小化、最大化/还原和关闭按钮,另外参考PyDracula风格,我添加了设置按钮。

去除原始标题栏

原始的程序标题栏默认是原生的Windows系统标题栏,如下图所示:既然已经决定要使用自定义的标题栏,原始的标题栏就不需要了,去除原始标题栏的方法很简单,只需要一句代码,在widget.cpp源文件的构造函数中添加:

去除了原始标题栏后,就要开始创建自定义的标题栏了,这时需要用到一些图标。

图标资源

向Qt中添加资源时不能直接选择Add Existing Directory…,这样做Qt无法识别图片的Path和URL。而是应该选择先添加Qt的qrc资源文件,再向资源文件中添加图片文件。

右击工程文件夹,选择添加新文件

PDF学习宝-开发日记2-自定义标题栏

选择Files and Classes中的Qt,再选择Qt Resources file

PDF学习宝-开发日记2-自定义标题栏

右击qrc文件,这时就可以选择Add Existing Directory…添加images文件夹了。

添加头文件

本节所需导入的头文件有两个:

标题栏按钮

在widget.h头文件中添加private slots函数和private声明:

在widget.cpp源文件中实例化按钮:

添加槽函数:

按钮功能实现:

标题栏标签

标题栏标签使用QLabel,扩展性高,方便后期美化时添加图标或图片,甚至可以做成不规则的形状。

在widget.h头文件中添加private slots函数和private声明:

在widget.cpp源文件中实例化标签:

这里不设置label的大小是因为后面会使用布局,布局会自动调整label的大小。

来源:王者荣耀游戏总攻略

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年9月27日
下一篇 2022年9月27日

相关推荐