我想删除我的QMainWindow的窗口标题栏(并最小化/最大化/关闭按钮)。我想使用我自己的最小化/关闭按钮。
我知道如何删除最小化/最大化/关闭窗口按钮。这不是问题。如何从Qt小部件中删除窗口边框(包含最小化、最大化和关闭按钮)?
问题是添加这些新按钮(最小化/关闭)。在Qt样式表(或C++)中可以这样做吗?
ps:我想要一些适用于Windows/Mac/Linux的便携设备
发布于 2017-05-05 08:35:29
不幸的是,这种装饰取决于窗口管理器。您可能会找到依赖于OS的解决方案(例如,这适用于Windows会更改标题栏的其他方面),但是如果删除窗口按钮,那么我知道的唯一可移植选项是创建自己的容器窗口、一个带有您想要的按钮的标题区域的QWidget
和一个可以添加应用程序其余部分的centralWiget
:
然后连接标头按钮。
connect(m_ui.btnMinimize, SIGNAL(clicked()), SLOT(showMinimized()));
connect(m_ui.btnClose, SIGNAL(clicked()), SLOT(close()));
要使其可重用,只需添加一个insert(QWidget*)
方法来替换centralWidget
。
注意:考虑到必须使用设置了Qt::FramelessWindowHint
标志的容器来创建容器,因此,如果希望允许用户移动/调整窗口大小,也必须手动处理这些操作。
发布于 2017-05-05 08:31:27
您应该创建没有系统栏的窗口(如果没有最小化、全屏、关闭按钮,您可以为该Qt::Window \ Qt::WindowTitleHint::CustomizeWindowHint)使用下一个标志,并添加您自己的自定义系统按钮。
https://stackoverflow.com/questions/43799157
复制相似问题