Qt 5 dark Fusion主题适用于Windows吗?

Chr*_*vic 7 qt themes stylesheet qt5

经过一些研究后我发现,Qt 5现在提供了一个所谓的Fusion主题,这个主题在他们的一篇博文中被描述.我真的很喜欢你在上一张图片中可以看到的黑色配置的主题,我想在我的应用程序中使用它,但似乎这个配色方案是由Unity/Gnome3(看起来像一个Ubuntu窗口)强制所以我是渴望知道是否有任何可用的样式表或变通方法将这个黑暗版本的主题应用于应用程序.

Sky*_*pex 13

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

我发现调色板的休闲这里.它根本不完整!

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);
Run Code Online (Sandbox Code Playgroud)

编辑:我已经创建了一个要点,因此我们可以使其功能完整.


Jor*_*gen 8

这是我的深色调色板:

// 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);
Run Code Online (Sandbox Code Playgroud)

在这里,您还可以找到一个带有无框窗口和自定义样式表以扩展深色调色板的完整示例:https : //github.com/Jorgen-VikingGod/Qt-Frameless-Window-DarkStyle


The*_*roo 4

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

所以基本上你所要做的就是使用工具或 QtProject.conf 文件来手动调整 Qt5 应用程序的调色板,并且不要忘记使用参数“-style fusion”启动你的应用程序,因为在 ubuntu 上它是从 GTk+ 外观仿真开始。