Установить тему QML с помощью QQuickWidget - PullRequest
0 голосов
/ 02 февраля 2019

У меня есть приложение 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") }
    }
}

Я установил файл ресурса main.qml для QQuickWidget из конструктора.Вот код 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 голосов
/ 03 февраля 2019

Как указано в документации , переменная QT_QUICK_CONTROLS_CONF по умолчанию имеет значение ": /qtquickcontrols2.conf".Следовательно, вы должны быть уверены, что ваш файл qtquickcontrols2.conf добавлен в файл ресурсов с корневым префиксом /, а не в любой другой подкаталог.

...