如何通过Qt样式表自定义Qt应用程序的标题栏?

时间:2010-12-22 09:39:49

标签: c++ qt user-interface stylesheet

我可以在Qt样式表中自定义Qt应用程序的控件。但是,我找不到自定义标题栏的方法。我找到了一些解决方案,但这需要修改应用程序本身的代码。无论如何你可以使用Qt样式表来定制它吗?

2 个答案:

答案 0 :(得分:8)

Title bar不是您的应用程序或Qt的一部分,也无法使用样式表进行配置。标题栏由Window manager提供。在某些WM中根本没有标题栏。大多数WM支持窗口装饰的可自定义主题。通常,您可以配置WM以显示具有特定主题的特定窗口。

在Qt中,只有QDockWidget的标题栏可以由样式表配置。

P.S。某些应用程序禁用窗口管理器中的装饰并绘制标题栏本身(例如Chromium)。

答案 1 :(得分:4)

Qt无法控制应用程序标题栏和边框的外观。这是正在使用的窗口管理器(WM)的领域。 Qt可以要求WM将其关闭或仅显示某些按钮,但这就是它的范围。

自定义标题栏的标准程序是删除它,然后在其位置的标题栏上创建自己的样式并设置样式。对于任何观看的人,请注意,这并不像你想象的那么酷。有些人喜欢自定义标题栏,当他们的应用程序与其他操作环境混合时,大多数人喜欢它(当你完成它时它就不会这样了。)

简短回答:使用Qt样式表无法在不更改应用程序源代码的情况下对现有应用程序执行此操作。