与QWidget和QtQuick控件共享QSS样式

时间:2015-08-03 11:48:05

标签: qt qt5 qtquick2 qtstylesheets

问题的简短版本

如何同时将资源文件QSS样式中定义的应用应用于QWidgetQtQuick控件?

完整版问题

有一些使用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

将显示以下窗口:

enter image description here

我正在使用:

  • Qt 5.6;
  • KUbuntu 15.10;
  • Plasma Desctop。

0 个答案:

没有答案