使用QQuickWidget设置QML主题

时间:2019-02-02 14:55:32

标签: c++ qt qml qquickwidget

我有一个QMainWindow应用程序,显示了一个QWidget(FormOverview),该应用程序又嵌入了QQuickWidget。我无法设置QML主题。

我创建了一个“ qtquickcontrols2.conf”并将其添加到qml.qrc:

[Controls]
Style=Material

[Material]
Theme=Dark
Accent=Orange
Primary=White

[Material\Font]
PixelSize=50

这是我的main.qml:

import QtQuick 2.11
import QtQuick.Controls 2.4
import QtQuick.Controls.Material 2.3

Rectangle {
    id: root
    width: 1000
    height: 1000
    visible: true

    TabBar {
        id: bar
        width: root.width

        TabButton { text: qsTr("TAB 1") }
        TabButton { text: qsTr("TAB 2") }
        TabButton { text: qsTr("TAB 3") }
        TabButton { text: qsTr("TAB 4") }
    }
}

我从设计器中为QQuickWidget设置了main.qml资源文件。 这是main.cpp代码:

int main(int argc, char *argv[])
{   
    QApplication a(argc, argv);
    MainWindow w;
    w.showMaximized();

    return a.exec();
}

MainWindow.h     FormOverview _formOverview;

MainWindow.cpp:

ui->tabView->addTab(&_formOverview, tr("Overview"));

我没有在代码中设置其他任何内容,因为我认为它应该自动找到并应用配置文件。而是使用默认主题呈现控件。

1 个答案:

答案 0 :(得分:0)

documentation中所述,QT_QUICK_CONTROLS_CONF变量默认设置为“:/qtquickcontrols2.conf”。 因此,您必须确保将qtquickcontrols2.conf添加到根前缀/中的资源文件中,而不要添加到其他任何子目录中。