2013-02-23 138 views
4

经过一番研究后,我发现,Qt 5现在提供了一个所谓的融合主题,这是在他们的blog posts之一desribed。我真的很喜欢黑色配置的主题,你可以在最后一张图片中看到,我想在我的应用程序中使用它,但看起来像这个配色方案是由Unity/Gnome3强制的(看起来像一个Ubuntu窗口),所以我是渴望知道是否有任何可用的样式表或解决方法将这个黑暗版本的主题应用到应用程序。是否可以在Windows上使用Qt 5 dark Fusion主题?

回答

2

AFAIK,Qt5 Fusion主题的颜色完全由调色板控制,而调色板又由系统主题控制。所以在Ubuntu上,你会得到橙色和蓝色的Windows ...

所以基本上你只需要使用一个工具或QtProject.conf文件手动调整Qt5应用程序的调色板,并且不要忘记用参数'-style fusion'来启动你的应用程序,因为除此之外,在Ubuntu上它是以GTK +外观模拟开始的。

12

我相信你已经找到它了,但是,正如TheBootroo所说,融合主题是由调色板控制的。

我发现了一个调色板here的娱乐。它根本不完整!

qApp->setStyle(QStyleFactory::create("Fusion")); 
QPalette p = qApp->palette(); 
p.setColor(QPalette::Window, QColor(53,53,53)); 
p.setColor(QPalette::Button, QColor(53,53,53)); 
p.setColor(QPalette::Highlight, QColor(142,45,197)); 
p.setColor(QPalette::ButtonText, QColor(255,255,255)); 
p.setColor(QPalette::WindowText, QColor(255,255,255)); 
qApp->setPalette(p); 

编辑:我创建了一个gist,所以我们可以把它功能完备。

1

这是我黑暗的调色板:

// set style 
qApp->setStyle(QStyleFactory::create("Fusion")); 
// increase font size for better reading 
QFont defaultFont = QApplication::font(); 
defaultFont.setPointSize(defaultFont.pointSize()+2); 
qApp->setFont(defaultFont); 
// modify palette to dark 
QPalette darkPalette; 
darkPalette.setColor(QPalette::Window,QColor(53,53,53)); 
darkPalette.setColor(QPalette::WindowText,Qt::white); 
darkPalette.setColor(QPalette::Disabled,QPalette::WindowText,QColor(127,127,127)); 
darkPalette.setColor(QPalette::Base,QColor(42,42,42)); 
darkPalette.setColor(QPalette::AlternateBase,QColor(66,66,66)); 
darkPalette.setColor(QPalette::ToolTipBase,Qt::white); 
darkPalette.setColor(QPalette::ToolTipText,Qt::white); 
darkPalette.setColor(QPalette::Text,Qt::white); 
darkPalette.setColor(QPalette::Disabled,QPalette::Text,QColor(127,127,127)); 
darkPalette.setColor(QPalette::Dark,QColor(35,35,35)); 
darkPalette.setColor(QPalette::Shadow,QColor(20,20,20)); 
darkPalette.setColor(QPalette::Button,QColor(53,53,53)); 
darkPalette.setColor(QPalette::ButtonText,Qt::white); 
darkPalette.setColor(QPalette::Disabled,QPalette::ButtonText,QColor(127,127,127)); 
darkPalette.setColor(QPalette::BrightText,Qt::red); 
darkPalette.setColor(QPalette::Link,QColor(42,130,218)); 
darkPalette.setColor(QPalette::Highlight,QColor(42,130,218)); 
darkPalette.setColor(QPalette::Disabled,QPalette::Highlight,QColor(80,80,80)); 
darkPalette.setColor(QPalette::HighlightedText,Qt::white); 
darkPalette.setColor(QPalette::Disabled,QPalette::HighlightedText,QColor(127,127,127)); 

qApp->setPalette(darkPalette); 

在这里你还可以找到与无框窗和自定义样式表一compelte例如延长黑暗的调色板: https://github.com/Jorgen-VikingGod/Qt-Frameless-Window-DarkStyle

+0

真的很好的主题!我可以在我的一个项目中使用它吗?你可以许可吗? MIT还是什么?或者我可以复制过去,然后将其许可为MIT?所有学分当然都会送给你。 – RandomGuy 2018-02-06 17:17:56

+0

刚刚注意到你已经有了麻省理工学院的许可[你的网站](https://github.com/Jorgen-VikingGod/Qt-Frameless-Window-DarkStyle/blob/master/DarkStyle.cpp)!谢谢!我会用它并给你适当的学分。 – RandomGuy 2018-02-07 10:36:01

相关问题