README.md
April 21, 2026 ยท View on GitHub
Qt-Fluent-Widgets
A fluent design widgets library based on PyQt-Fluent-Widgets
English | ็ฎไฝไธญๆ
๐ 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
| Category | Widgets |
|---|---|
| Buttons | PushButton, ToolButton, RadioButton, CheckBox, ToggleButton, SplitButton |
| Input | LineEdit, ComboBox, SpinBox, DoubleSpinBox, TextEdit |
| Dialogs | MessageBox, ColorDialog, Flyout, TeachingTip |
| Navigation | NavigationView, BreadcrumbBar, Pivot, SegmentedWidget, TabBar |
| Status | InfoBar, ProgressBar, ProgressRing, StateToolTip, ToolTip, InfoBadge |
| Menus | RoundMenu, CommandBar, CheckableMenu |
| Material | Acrylic, Mica effect (Windows 11) |
| Layout | FlowLayout 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();
}
๐ฏ Gallery Application
The repository includes a demo gallery application showcasing all widgets:
cd build
./app/qtfluentwidgets_app # Linux/macOS
qtfluentwidgets_app.exe # Windows
๐ Supported Platforms
| Platform | Status | Notes |
|---|---|---|
| Windows | โ Full support | Acrylic/Mica effects, frameless window |
| macOS | โ Full support | Frameless window with native Cocoa integration |
| Linux | โ Full support | Frameless window with Qt6 system resize API |
๐ License
This project is licensed under GPLv3 - see the LICENSE file for details.
๐ Acknowledgments
- zhiyiYo - Creator of the original PyQt-Fluent-Widgets library
- zhiyiYo - Official documentation & demos (Python version)
- COLORREF - QWidget-FancyUI for frameless window implementation reference on Windows
- Microsoft - Fluent Design System inspiration
- Qt Framework - The foundation for cross-platform UI development
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.