【发布时间】: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_CONF将qtquickcontrols2.conf的路径设置为本地文件,以查看自定义样式是否有效。 -
问题是文件应该在 / 前缀中。由于错误,它被放置在子目录中。
-
你应该自己回答这个问题,让别人知道它已经解决了。
标签: c++ qt qml qquickwidget