【问题标题】:Set QML theme using QQuickWidget使用 QQuickWidget 设置 QML 主题
【发布时间】:2019-06-26 21:33:27
【问题描述】:

我有一个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") }
    }
}

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

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

    return a.exec();
}

主窗口.h FormOverview _formOverview;

MainWindow.cpp:

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

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

【问题讨论】:

  • 尝试使用QT_QUICK_CONTROLS_CONFqtquickcontrols2.conf 的路径设置为本地文件,以查看自定义样式是否有效。
  • 问题是文件应该在 / 前缀中。由于错误,它被放置在子目录中。
  • 你应该自己回答这个问题,让别人知道它已经解决了。

标签: c++ qt qml qquickwidget


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-10
    • 1970-01-01
    • 2019-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-04
    相关资源
    最近更新 更多