使用 QQuickWidget 设置 QML 主题



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

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

[Controls]
Style=Material
[Material]
Theme=Dark
Accent=Orange
Primary=White
[MaterialFont]
PixelSize=50

这是我的主要.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 资源文件。这里是主要.cpp代码:

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

主窗口.h 表格概述_formOverview;

主窗口.cpp:

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

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

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

最新更新