A beautiful and modern Qt Fluent Design component library with 90+ high-quality out-of-the-box components
QFluentKit is a Qt-based Fluent Design style component library that provides a complete collection of modern UI components. The project adopts the C++17 standard, supports both Qt5/Qt6 versions, and is compatible with Windows, Linux, and macOS platforms.
- 🎨 Fluent Design Style - Modern Microsoft Fluent Design UI specifications
- 🌓 Dark/Light Theme - Automatic theme switching with custom theme color support
- 🧩 90+ Advanced Components - Covering input, display, layout, dialogs, and complete scenarios
- 🦦 Qt5/Qt6 Dual Support - One codebase, fully compatible with both versions
- 🖥️ Cross-Platform - Windows, Linux, macOS support
- 📦 Easy Integration - Dynamic library format with simple CMake integration
- 🎭 Rich Animation Effects - Multiple built-in smooth animation systems
- 🎭 Acrylic Material Effect - Support for Windows acrylic frosted glass effect
| Platform | Support Status | Remarks |
|---|---|---|
| Windows 10/11 | ✅ Full Support | Recommended, best experience |
| Linux | ✅ Supported | Qt5/Qt6 both available |
| macOS | ✅ Supported | Qt5/Qt6 both available |
- Qt 5.12 or higher
- Qt 6.x fully supported
| Platform | Recommended Compiler |
|---|---|
| Windows | MinGW 8.0+ or MSVC 2017+ |
| Linux | GCC 7+ or Clang 5+ |
| macOS | Clang (Xcode 10+) |
- CMake 3.15+
- Qt Modules: Core, Widgets, Svg, Xml
git clone https://github.com/toddming/QFluentKit.git
cd QFluentKitmkdir build && cd build
cmake -G "MinGW Makefiles" ..
mingw32-makemkdir build && cd build
cmake ..
cmake --build . --config Releasemkdir build && cd build
cmake ..
make -j$(nproc)Run the example program:
cd build/QFluentExample
./QFluentExample # Linux/macOS
QFluentExample.exe # WindowsAdd to your CMakeLists.txt:
# Minimum CMake version
cmake_minimum_required(VERSION 3.15)
# Add QFluentKit subdirectory
add_subdirectory(QFluentKit)
# Link QFluentKit
target_link_libraries(MyApp PRIVATE QFluent)
- Build QFluentKit to generate
QFluentKit.dll(Windows) orlibQFluentKit.so(Linux/macOS) - Include the header directory in your project:
QFluentKit/QFluent/src/ - Link the generated library file
QWindowKit provides advanced window management features (frameless windows, frosted glass effect, etc.):
# Enable when building the example program
set(BUILD_QWINDOWKIT ON CACHE BOOL "Build with QWindowKit support" FORCE)
# Or enable via CMake parameter
cmake -DBUILD_QWINDOWKIT=ON ..Once enabled, the USE_QWINDOWKIT macro will be defined, allowing access to enhanced window features.
#include <QWidget>
#include <QApplication>
#include "QFluent/LineEdit.h"
#include "QFluent/PushButton.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// Create a Fluent window
QWidget window;
window.setWindowTitle("QFluentKit Example");
window.resize(800, 600);
// Create a button
auto *button = new PrimaryPushButton(&window);
button->setText("Click Me");
button->move(350, 280);
// Create a line edit
auto *lineEdit = new LineEdit(&window);
lineEdit->setPlaceholderText("Please enter content...");
lineEdit->move(350, 340);
window.show();
return app.exec();
}
- Button, PrimaryButton, HyperlinkButton
- CheckBox, RadioButton
- ComboBox, LineEdit, Slider, SpinBox
- SwitchButton, PushButton
- Label, CaptionLabel, StrongLabel
- ImageLabel, IconWidget
- CardWidget, Loading
- DatePicker, TimePicker
- CalendarPicker, CalendarView
- CycleListWidget
- RoundMenu, NavigationPanel, NavigationBar
- Pivot, TabBar
- MessageDialog, ColorDialog, Flyout, TeachingTip
- StackedWidget, ScrollArea, TableView
- ListView, FlowLayout, ExpandLayout
- ProgressBar, ProgressRing
- IndeterminateProgressBar, IndeterminateProgressRing
- InfoBar, ToolTip
- SettingCard, SettingCardGroup
- ExpandSettingCard, OptionsSettingCard
- AcrylicWidget, AcrylicLabel, AcrylicMenu, AcrylicToolTip
QFluentKit/
├── QFluent/ # Core dynamic library
│ ├── src/
│ │ ├── FluentGlobal.h # Global enumerations (ThemeMode, IconType, ThemeStyle)
│ │ ├── Theme.h # Theme management system (AUTO/LIGHT/DARK)
│ │ ├── Router.h # Routing system (works with StackedWidget)
│ │ ├── FluentIcon.h # Icon system (248+ built-in SVG icons)
│ │ ├── StyleSheet.h # Stylesheet management system
│ │ ├── Animation.h # Animation system base class
│ │ ├── QFluent/ # Public component headers
│ │ │ ├── BasicInput/ # Basic input components
│ │ │ ├── Display/ # Display components
│ │ │ ├── DateTime/ # Date and time components
│ │ │ ├── Menu/ # Menu components
│ │ │ ├── Dialog/ # Dialogs
│ │ │ ├── Layout/ # Layout containers
│ │ │ ├── Progress/ # Progress components
│ │ │ ├── Setting/ # Setting cards
│ │ │ └── Material/ # Material effects
│ │ └── Private/ # PIMPL private implementation
│ └── res/ # Resource files
│ ├── images/icons/ # Fluent Design SVG icons
│ └── style/ # QSS stylesheets (light/dark)
├── QFluentExample/ # Example application
│ ├── src/
│ │ ├── Interface/ # 15 demo interfaces
│ │ │ ├── HomeInterface.h
│ │ │ ├── BasicInputInterface.h
│ │ │ └── ...
│ │ └── Window/ # Custom window examples
│ │ ├── LoginWindow.h
│ │ ├── NavbarWindow.h
│ │ └── SplitWindow.h
│ └── libs/qwindowkit/ # Optional window management library
├── CMakeLists.txt # Root CMake configuration
└── README.md
This project is open source under the GPLv3 license.
Issues and Pull Requests are welcome!
- Core window management: QWindowKit
- Design inspiration from: PyQt-Fluent-Widgets
⭐ If you find this project helpful, please give it a Star!

