通常我们在电脑上打开一个应用程序时,就会在电脑下方的任务栏中显示该应用程序的图标,当我们点击该应用图标时就会实现应用程序的界面展示与最小化界面的效果,那么我们使用Qt做了一个应用程序,怎么做才能实现这个效果呢?其实很简单只需要在实例完窗口类之后,调用一下窗口类里的 setWindowFlags 方法,并传入一些特定的参数即可,代码如下所示。
setWindowFlags(Qt::Window | Qt::FramelessWindowHint | Qt::WindowSystemMenuHint | Qt::WindowMinimizeButtonHint | Qt::WindowMaximizeButtonHint);
参数解释
Qt::Window
:明确将该部件当作一个独立的窗口来处理。在 Qt 里,部件默认属于子部件,借助此标志可让部件成为顶级窗口。Qt::FramelessWindowHint
:这个标志会让窗口去掉默认的边框和标题栏,也就是窗口不会有系统自带的边框、标题栏、关闭按钮、最小化按钮和最大化按钮。Qt::WindowSystemMenuHint
:此标志会为窗口添加一个系统菜单。通常在标题栏的左上角点击,就能看到这个菜单,菜单里一般包含像 “关闭”“最小化”“最大化” 这类选项。Qt::WindowMinimizeButtonHint
:这个标志会在窗口的标题栏添加一个最小化按钮,用户点击该按钮就能把窗口最小化。Qt::WindowMaximizeButtonHint
:此标志会在窗口的标题栏添加一个最大化按钮,用户点击该按钮就能把窗口最大化。
示例代码
以下是一个简单的示例,展示了如何使用这些标志:
#include <QApplication>
#include <QWidget>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget window;
window.setWindowFlags(Qt::Window | Qt::FramelessWindowHint | Qt::WindowSystemMenuHint | Qt::WindowMinimizeButtonHint | Qt::WindowMaximizeButtonHint);
window.show();
return a.exec();
}
整体效果
结合上述所有标志,这段代码的作用是创建一个没有默认边框和标题栏的窗口,不过会添加系统菜单以及最小化和最大化按钮。这样一来,窗口外观上没有默认的边框和标题栏,但用户仍然能够借助系统菜单或者最小化、最大化按钮来对窗口进行操作。
最后
这次的分享就这么多了,如果博主的内容对你有用的话就给博主点点赞或者关注一下博主,如果有问题欢迎到评论区来讨论,谢谢。