README.md

April 21, 2026 ยท View on GitHub

logo

Qt-Fluent-Widgets

A fluent design widgets library based on PyQt-Fluent-Widgets

Version GPLv3 Platform Qt

English | ็ฎ€ไฝ“ไธญๆ–‡

interface

๐Ÿ“– Introduction

Qt-Fluent-Widgets is a C++ native port of the popular PyQt-Fluent-Widgets library by zhiyiYo. It provides a comprehensive set of modern Fluent Design UI widgets for Qt6 applications.

This library aims to bring the beautiful Fluent Design System to native C++ Qt applications, offering:

  • ๐ŸŽจ Fluent Design aesthetics - Acrylic, Mica, and modern styling
  • ๐Ÿงฉ Rich widget collection - Buttons, menus, dialogs, navigation, and more
  • โšก High performance - Native C++ implementation
  • ๐Ÿ”ง Easy integration - Static library that links directly to your Qt project

โœจ Features

CategoryWidgets
ButtonsPushButton, ToolButton, RadioButton, CheckBox, ToggleButton, SplitButton
InputLineEdit, ComboBox, SpinBox, DoubleSpinBox, TextEdit
DialogsMessageBox, ColorDialog, Flyout, TeachingTip
NavigationNavigationView, BreadcrumbBar, Pivot, SegmentedWidget, TabBar
StatusInfoBar, ProgressBar, ProgressRing, StateToolTip, ToolTip, InfoBadge
MenusRoundMenu, CommandBar, CheckableMenu
MaterialAcrylic, Mica effect (Windows 11)
LayoutFlowLayout with animation support

๐Ÿ“‹ Requirements

  • Qt 5.15+ or Qt 6.5+
    • Windows: Qt 6.5+ recommended
    • macOS: Qt 6.9.0 recommended
    • Linux: Qt 6.5+ recommended
    • Qt 5.15 LTS also supported
  • CMake 3.16+
  • C++17 compiler
    • MSVC 2019+ (Windows)
    • Clang (macOS, via Xcode or Command Line Tools)

๐Ÿš€ Quick Start

1. Clone the Repository

git clone https://github.com/Fairy-Oracle-Sanctuary/Qt-Fluent-Widgets.git
cd Qt-Fluent-Widgets

2. Build the Library

mkdir build && cd build
cmake ..
cmake --build . --config Release

3. Integrate into Your Project

Add to your CMakeLists.txt:

add_subdirectory(Qt-Fluent-Widgets)

target_link_libraries(your_app PRIVATE
    qtfluentwidgets
    Qt6::Widgets
    Qt6::Svg
)

4. Basic Usage

#include <QApplication>
#include <qtfluentwidgets.h>

int main(int argc, char *argv[]) {
    // Initialize Qt resources from static library
    Q_INIT_RESOURCE(resource);

    QApplication app(argc, argv);

    // Set theme (Light, Dark, or Auto)
    qfw::setTheme(qfw::Theme::Light);

    // Create a fluent window
    qfw::FluentWindow window;
    window.setWindowTitle("My Fluent App");
    window.resize(800, 600);
    window.show();

    return app.exec();
}

The repository includes a demo gallery application showcasing all widgets:

cd build
./app/qtfluentwidgets_app  # Linux/macOS
qtfluentwidgets_app.exe     # Windows

๐ŸŒ Supported Platforms

PlatformStatusNotes
Windowsโœ… Full supportAcrylic/Mica effects, frameless window
macOSโœ… Full supportFrameless window with native Cocoa integration
Linuxโœ… Full supportFrameless window with Qt6 system resize API

๐Ÿ“ License

This project is licensed under GPLv3 - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

Note: This project is a C++ implementation referenced from the Python version of PyQt-Fluent-Widgets. The original author offers a commercial C++ version, but this project was independently developed by studying the open-source Python codebase. The Windows frameless window implementation references QWidget-FancyUI.

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit issues and pull requests.

๐Ÿ† Contributors