From d8185e69c85c648b4fc8f9e8464f010d3ebd48f9 Mon Sep 17 00:00:00 2001 From: Camila Ayres Date: Wed, 7 Aug 2024 17:05:29 +0200 Subject: [PATCH] Change default Qt quick control style depending on the platform. Signed-off-by: Camila Ayres --- src/gui/main.cpp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/gui/main.cpp b/src/gui/main.cpp index 14b55dab7..b1794106a 100644 --- a/src/gui/main.cpp +++ b/src/gui/main.cpp @@ -70,10 +70,28 @@ int main(int argc, char **argv) QSurfaceFormat::setDefaultFormat(surfaceFormat); QQuickWindow::setTextRenderType(QQuickWindow::NativeTextRendering); - QQuickStyle::setStyle(QStringLiteral("Fusion")); + + auto style = QStringLiteral("Fusion"); + +#ifdef Q_OS_MAC + style = QStringLiteral("macOS"); +#endif OCC::Application app(argc, argv); +#ifdef Q_OS_WIN + // The Windows style still has pixelated elements with Qt 5.6, + // it's recommended to use the Fusion style in this case, even + // though it looks slightly less native. Check here after the + // QApplication was constructed, but before any QWidget is + // constructed. + if (app.devicePixelRatio() > 1) { + style = "Windows"; + } +#endif // Q_OS_WIN + + QQuickStyle::setStyle(style); + #ifndef Q_OS_WIN signal(SIGPIPE, SIG_IGN); #endif -- 2.30.2