Fluent-Qt

Modernize Qt Widgets apps without rewriting in QML

Native C++17 controls that keep your existing signals, slots, layouts, and project structure.

C++17 Qt 5.15+ / 6.2+ MIT

The online Gallery runs in your browser and does not need a local Qt setup. Integrating Fluent-Qt still requires Qt 5.15+ or 6.2+.

Python / PySide6 Use the same controls from Python through PySide6 pip install FluentQt Gallery
Fluent-Qt Gallery home showing the complete control catalog and samples
Gallery interface
UI runtime
Qt Widgets
Qt support
5.15+ / 6.2+
Toolchain
CMake + C++17
Platforms
Windows / macOS / Linux / Web

03 / GUI SKILL

Build desktop GUIs

  • ProjectC++ / PySide6 application structure
  • UIFluent components, themes, and color
  • ChecksLight / Dark, narrow layouts, and interaction
REFERENCE BUILD DeepSeek Desktop
C++ · FluentQt
Native DeepSeek Desktop reference UI built with build-fluentqt-gui

Task groups, run timeline, composer, and Light / Dark themes.

Independent FluentQt build; not an official DeepSeek app.

Upstream project

04 / POSITIONING

Independent controls beyond styling

Each control has its own C++ API, states, and layout behavior

  1. 01

    Native Qt Widgets usage

    Uses signals, slots, layouts, and the event loop

  2. 02

    One API for Qt 5 and Qt 6

    Application code does not need separate call sites for each major Qt version

  3. 03

    A clear public boundary

    Application code depends on the public entry header and FluentQt::FluentQt

05 / COMPONENTS

Controls by purpose

A selection from Gallery

Complete Button control page in Fluent-Qt Gallery
01

BASIC INPUT

Button

Includes default, accent, disabled, and icon states

SplitButtonComboBoxCheckBox
Collections page in Fluent-Qt Gallery
02 / COLLECTIONSListView · GridView · TreeView
Navigation and window UI in Fluent-Qt Gallery
03 / SHELLNavigation · Windowing
11 control families

Basic input · Collections · Date and time · Dialogs · Layout · Menus · Navigation · Scrolling · Status · Text input · Windowing

FoundationTheme · Typography · FontIcon
Basic inputButton · ComboBox · ToggleSwitch
CollectionsListView · GridView · TreeView
Date & timeCalendarView · DatePicker · TimePicker
Dialogs & flyoutsContentDialog · Flyout · TeachingTip
LayoutCard · Accordion · Expander
Menus & toolbarsMenu · MenuBar · CommandBar
NavigationNavigationView · TabView · Breadcrumb
ScrollingScrollView · PipsPager · AnnotatedScrollBar
Status & infoInfoBar · ProgressRing · Toast
Text fieldsLineEdit · PasswordBox · AutoSuggestBox
WindowingWindow · TitleBar · WindowBackdrop

06 / QUICK START

Quick start

Copy the CMake snippet into an existing project; add_subdirectory and find_package are also supported.

  • Keep the Widgets project and event loop you already have
  • The library target depends only on Qt Widgets
  • Use the same application-facing API with Qt 5 and Qt 6
CMakeLists.txt
# Add Fluent-Qt to your existing project
include(FetchContent)

FetchContent_Declare(
  fluentqt
  GIT_REPOSITORY https://github.com/calvinhxx/Fluent-Qt.git
  GIT_TAG v1.7.1
  GIT_SHALLOW TRUE
)
FetchContent_MakeAvailable(fluentqt)

target_link_libraries(
  my_app PRIVATE FluentQt::FluentQt
)

07 / DOWNLOAD

Download Gallery

Desktop packages are for offline evaluation; integrate applications through CMake or PyPI.