Qt GUI theme looks old-fashioned

Widgets

Qt-based GUIs will automatically select the default theme depending on your OS. If you want to override it, you are looking for QApplication's setStyle method, which lets you define the style used for your application, regardless of the OS it runs on.

QApplication::setStyle("fusion");

From the documentation, the following are supported:

  • "windows"
  • "fusion"
  • "windowsxp"
  • "macintosh"

The supported themes depend on your platform, and can be extended with plugins.


EDIT: This answer targets situations where the OS is correctly detected by Qt configuration step, and you just want to change the theme used. In the situation described, the incorrect theme was selected, which is fixed in OP's answer.

Qt Quick

If your GUI is based on QtQuick instead of Widgets, you can use QQuickStyle::setStyle("Material"); instead to customize the theme that you want to see used.

For more details, you can look at that documentation page:

  • https://doc.qt.io/qt-5/qtquickcontrols2-styles.html#using-styles-in-qt-quick-controls-2

I had the same issue after upgrading from Qt5.9.1 to Qt5.12.

Placing qwindowsvistastyle.dll, which I found to be in Qt\5.12.0\msvc2017_64\plugins\styles, needed to be placed in my applicationDir\styles directory.