c++ - 如何将 qml 文件集成到 qt-widgets 应用程序中?

标签 c++ qt qt-quick

我有一个 qt widgets 应用程序。我想将开关控件添加到我的窗体中。 我添加到我的表单 QDeclarative 小部件并将此行添加到代码但没有显示。

ui->declarativeView->setSource(QUrl::fromLocalFile("test.qml"));

这是qml文件的内容(我在resources中添加了这个文件) 它显示在 resources/[project_name.qrc]/test.qml 下的 qtcreator

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,如下所示。

在您的用户界面中创建布局。或者通过代码来完成。然后将 View 添加到布局中,如下所示:

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

4.引用:Introducing QWidget::createWindowContainer()

5. 注意:如果您必须将 url 添加到资源文件中,则必须使用 :/ 引用 here了解更多详情。

关于c++ - 如何将 qml 文件集成到 qt-widgets 应用程序中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31531961/

相关文章:

c++ - 模拟整个图书馆

c++ - Qt/C++ 不将 QGraphicview 显示为 QWidget

c++ - 创建多个对象类型的 QList

qt - 设置工具按钮的背景颜色

c++ - 使用 return String1 - String2 == 0 进行相等性检查是否安全?

c++ - 如何使用 CRTP 创建少量对象?

c++ - 在 C++ 中使用两个文件流处理异常

c++ - 在 Qt 5.5 中集成(任何) map 框架

qt - 桌面程序的“传统 Qt”或 'Qt Quick'?

qt - 如何在 qml 中将 TextInput 分配给 int?