2013-02-23 71 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

相關問題