QtTheme
Qt theme in pure qss - 纯 QSS 的 Qt 主题
Install / Use
/learn @hubenchang0515/QtThemeREADME
Qt Theme
Qt theme in pure qss - 纯 qss 的 Qt 主题
Preview and Export Resource Package Online - 在线预览和导出资源包
Preview - 预览


Usage - 使用说明
QtTheme is a pure QSS project, no language restrictions, use C++ description here.
-
Export the resource package from here, and add it to your project.
-
Use
QMainWindow::setStyleSheetto set the global style.QFile file(":/QtTheme/theme/Flat/Dark/Blue/Pink.qss"); file.open(QFile::ReadOnly); setStyleSheet(file.readAll()); -
Use
QWdiget::setPropertyto set the color.auto button = new QPushButton(tr("Button")); button->setProperty("Color", "Primary");
| Color | Explain |
| :----------- | :------------------------------------------------------------------------- |
| Primary | The primary color selected when exporting |
| Secondary | The secondary color selected when exporting |
| Success | The success color(
) |
| Warning | The warning color(
) |
| Danger | The error color(
) |
QtTheme 是纯 QSS 的项目,不受语言限制,这里使用 C++ 描述。
-
在这里导出资源包,然后将其加入你的项目。
-
使用
QMainWindow::setStyleSheet设置全局样式。QFile file(":/QtTheme/theme/Flat/Dark/Blue/Pink.qss"); file.open(QFile::ReadOnly); setStyleSheet(file.readAll()); -
使用
QWdiget::setProperty设置颜色。auto button = new QPushButton(tr("Button")); button->setProperty("Color", "Primary");
| 颜色 | 说明 |
| :----------- | :---------------------------------------------------------- |
| Primary | 导出时选择的主要颜色 |
| Secondary | 导出时选择的次要颜色 |
| Success | 成功色(
) |
| Warning | 警告色(
) |
| Danger | 危险色(
) |
Notice - 注意事项
Customized QWidget subclasses must override paintEvent, otherwise the style will not take effect on this class:
自定义的 QWidget 子类,必须重载 paintEvent,否则样式不会再该类上生效:
https://doc.qt.io/qt-6/stylesheet-reference.html#qwidget-widget
void CustomWidget::paintEvent(QPaintEvent *)
{
QStyleOption opt;
opt.initFrom(this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}
Style will not update itself automatically when the value of a property referenced from the style sheet changes, you must update it manually:
当样式表引用的属性值发生变化时,样式不会自动更新,必须手动更新:
https://wiki.qt.io/Dynamic_Properties_and_Stylesheets
// property changes
widget->setProperty("Color", "Secondary");
// update style manually
widget->style()->unpolish(widget);
widget->style()->polish(widget);
QComboBox must set the view for the internal style to take effect:
QComboBox 必须设置 view, 内部的样式才能生效:
https://doc.qt.io/qt-6/stylesheet-reference.html#qcombobox-widget
comboBox->setView(new QListView);
Python
Install - 安装:
pip install QtTheme
Usage - 使用:
This method will include all resources of QtTheme. It is recommended to export the resource package from here, and add it to your project by RCC (
pyrcc5orpyside6-rcc).
这种方式将会包含 QtTheme 的全部资源。 建议从 这里 导出资源包, 然后通过 RCC (
pyrcc5orpyside6-rcc) 将它加入你的项目。
Build - 构建
Dependencies - 依赖
- Deb & Qt5:
qtbase5-dev,qttools5-dev - Deb & Qt6:
qt6-base-dev,qt6-tools-dev - Rpm & Qt5:
qt5-qtbase-devel,qt5-qttools-devel - Rpm & Qt6:
qt6-qtbase-devel,qt6-qttools-devel
git clone git@github.com:hubenchang0515/QtTheme.git
cd QtTheme
git submodule update --init
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . --config Release --parallel
License
- This Project - 这个项目:
AGPL-3.0-or-later - Exported Resource - 导出的资源:
MIT
Contributors
Examples
| Windows Native | QtTheme Flat |
| :-: | :-: |
|
|
|
|
|
|
Related Skills
node-connect
349.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
claude-opus-4-5-migration
109.8kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
frontend-design
109.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
model-usage
349.9kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
