问题的简短版本
如何同时将资源文件QSS样式中定义的应用应用于QWidget和QtQuick控件?
完整版问题
有一些使用Qt编写的大项目。对于自定义控件的外观,使用资源文件中定义的样式表。现在到项目添加了使用QtQuick控件的小部件。默认情况下,从QWidget继承的控件与QtQuick控件看起来不同。所以问题是:如何在QtQuick控件上扩展已存在的StyleSheet,只需更改QtQuick代码?
示例
Here is complete example更好地描述了我的问题。 该项目具有以下结构:
.
├── CMakeLists.txt
├── main.cpp
├── MainWidget.cpp
├── MainWidget.h
├── QtWidget.cpp
├── QtWidget.h
├── QuickWidget.cpp
├── QuickWidget.h
└── resources
├── resources.qrc
├── style.qss
└── widget.qml
MainWidget
类定义(按预期)主要小部件。开头MainWidget
只包含一个从QtWidget
继承的小部件QWidget
。对于外观的自定义,使用resources/style.qss
中定义的样式表。稍后QuickWidget
类将添加到项目中。 QuickWidget
class v QtQuick控件,在文件中定义:resources/widget.qml
。构建并启动应用程序后:
mkdir build
cd build
cmake ..
make
./qqcs
将显示以下窗口:
我正在使用: