如何将 qml 文件集成到 qt-widgets 应用程序中?
how to integrate qml file into qt-widgets app?
我有一个 qt widgets 应用程序。我想将开关控件添加到我的窗体中。
我添加到我的表单 QDeclarative 小部件并将此行添加到代码但没有显示。
ui->declarativeView->setSource(QUrl::fromLocalFile("test.qml"));
这是qml文件的内容(我把这个文件加到资源里了)
它显示在 qtcreator 下的 resources/[project_name.qrc]/test.qml
import QtQuick 2.4
import QtQuick.Controls 1.3
Button{
text:aaaa
}
我添加了 pro 文件:qt += declarative
我做错了什么??
我正在使用 Qt 5.4.1 QtCreator 3.3.1。
1. QDeclarativeView
适用于较旧的 Qt 版本。如果您正在将应用程序移植到 Qt 5,那么您可以参考此 documentation.
2. 对于您的应用程序,您可以在 Qt 5.x QuickView
中使用新的 class,如下所示。
在 ui 中创建布局。或者通过代码来完成。然后将视图添加到布局中,如下所示:
QQuickView *view = new QQuickView();
QWidget *container = QWidget::createWindowContainer(view, this);
container->setMinimumSize(300, 200);
container->setMaximumSize(300, 200);
view->setSource(QUrl("qrc:/test.qml")); // Fetch this url by right clicking on your resource file.
ui->verticalLayout->addWidget(container);
3. 在 .pro
文件中添加 quick 模块:
+quick
4.参考:Introducing QWidget::createWindowContainer()
5. 注意:如果您必须将 url 添加到资源文件中,则必须使用 :/
参考 here更多详情。
我有一个 qt widgets 应用程序。我想将开关控件添加到我的窗体中。 我添加到我的表单 QDeclarative 小部件并将此行添加到代码但没有显示。
ui->declarativeView->setSource(QUrl::fromLocalFile("test.qml"));
这是qml文件的内容(我把这个文件加到资源里了) 它显示在 qtcreator 下的 resources/[project_name.qrc]/test.qml
import QtQuick 2.4
import QtQuick.Controls 1.3
Button{
text:aaaa
}
我添加了 pro 文件:qt += declarative
我做错了什么??
我正在使用 Qt 5.4.1 QtCreator 3.3.1。
1. QDeclarativeView
适用于较旧的 Qt 版本。如果您正在将应用程序移植到 Qt 5,那么您可以参考此 documentation.
2. 对于您的应用程序,您可以在 Qt 5.x QuickView
中使用新的 class,如下所示。
在 ui 中创建布局。或者通过代码来完成。然后将视图添加到布局中,如下所示:
QQuickView *view = new QQuickView();
QWidget *container = QWidget::createWindowContainer(view, this);
container->setMinimumSize(300, 200);
container->setMaximumSize(300, 200);
view->setSource(QUrl("qrc:/test.qml")); // Fetch this url by right clicking on your resource file.
ui->verticalLayout->addWidget(container);
3. 在 .pro
文件中添加 quick 模块:
+quick
4.参考:Introducing QWidget::createWindowContainer()
5. 注意:如果您必须将 url 添加到资源文件中,则必须使用 :/
参考 here更多详情。