10

調査の結果、Qt 5 は現在、いわゆる Fusion テーマを提供していることがわかりました。これは、ブログ投稿の 1 つで説明されています。最後の写真にある黒色の構成のテーマが本当に気に入っています。これをアプリケーションで使用したいと思っていますが、この配色は Unity/Gnome3 によって強制されているようです (Ubuntu ウィンドウのように見えます)。この暗いバージョンのテーマをアプリケーションに適用するための利用可能なスタイルシートまたは回避策があるかどうかを知りたいと思っています。

4

3 に答える 3

17

すでに見つけていると思いますが、TheBootroo が言ったように、Fusion テーマはカラー パレットによって制御されます。

ここでパレットの再現を見つけました。全然未完成です!

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を作成したので、機能を完全にすることができます。

于 2013-05-09T11:47:48.887 に答える
10

これは私の暗いパレットです:

// 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);

ここでは、フレームレス ウィンドウとダーク パレットを拡張するカスタム スタイルシートを使用した完全な例も見つけることができます: https://github.com/Jorgen-VikingGod/Qt-Frameless-Window-DarkStyle

于 2017-08-11T11:55:52.693 に答える
3

私の知る限り、Qt5 Fusion テーマの色はカラー パレットによって完全に制御されており、カラー パレットはシステム テーマによって制御されています。したがって、Ubuntuではオレンジ色、Windowsでは青になります...

したがって、基本的に必要なことは、ツールまたは QtProject.conf ファイルを使用して Qt5 アプリのカラー パレットを手動で調整することだけです。引数「-style fusion」を使用してアプリを起動することを忘れないでください。 GTk+ ルック エミュレーションから始めました。

于 2013-03-18T08:37:17.290 に答える