如何将qml文件集成到qt-widgets app中?

时间:2015-07-21 06:37:45

标签: c++ qt qt-quick

我有一个qt小部件应用程序。我想将开关控件添加到我的表单中。 我添加到我的表单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
}

我添加了专业文件:qt + = declarative

我做错了什么?

我使用的是Qt 5.4.1 QtCreator 3.3.1。

1 个答案:

答案 0 :(得分:4)

1。 QDeclarativeView适用于较旧的Qt版本。如果您要将应用程序移植到Qt 5,那么您可以参考此documentation

2。对于您的应用,您可以使用Qt 5.x QuickView中的新课程,如下所示。

在你的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

4. 参考:Introducing QWidget::createWindowContainer()

5. 注意:如果您必须在资源文件中添加网址,则必须使用:/,请参阅here了解详情。