Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以在qt widgets应用程序中使用快速控件吗?_Qt_Qml_Qtquick2_Qtwidgets - Fatal编程技术网

我可以在qt widgets应用程序中使用快速控件吗?

我可以在qt widgets应用程序中使用快速控件吗?,qt,qml,qtquick2,qtwidgets,Qt,Qml,Qtquick2,Qtwidgets,我需要标准小部件的材料样式的替代品,使用自定义小部件实现它们有点困难。我想知道是否有任何方法可以包括来自quick control module的小部件,并将其用作常规小部件?如果您的应用程序是Qt5.1及以上版本,答案是可以 您必须使用QQuickView对象并将其传递给QWidget的静态函数createWindowContainer,该函数将QWindow作为参数 QQuickView派生自QQuickWindow,它派生自QWindow 因此,您可以将QQuickView作为输入传递到c

我需要标准小部件的材料样式的替代品,使用自定义小部件实现它们有点困难。我想知道是否有任何方法可以包括来自quick control module的小部件,并将其用作常规小部件?

如果您的应用程序是Qt5.1及以上版本,答案是可以

您必须使用
QQuickView
对象并将其传递给
QWidget
的静态函数
createWindowContainer
,该函数将
QWindow
作为参数

QQuickView
派生自
QQuickWindow
,它派生自
QWindow

因此,您可以将
QQuickView
作为输入传递到
createWindowContainer

下面是一些粗略的代码

//CREATE A QQuickView  OBJECT.
QQuickView *view = new QQuickView();

//ADD THE QQuickView  OBJECT TO QWidget::createWindowContainer
QWidget *container = QWidget::createWindowContainer(view, this);

//ADD SOURCE
view->setSource(QUrl("your.qml"));

//ADD THE CONTAINER TO YOUR LAYOUT.
ui->verticalLayout->addWidget(container);

如果您的申请是Qt5.1及以上,答案是“是”,您可以

您必须使用
QQuickView
对象并将其传递给
QWidget
的静态函数
createWindowContainer
,该函数将
QWindow
作为参数

QQuickView
派生自
QQuickWindow
,它派生自
QWindow

因此,您可以将
QQuickView
作为输入传递到
createWindowContainer

下面是一些粗略的代码

//CREATE A QQuickView  OBJECT.
QQuickView *view = new QQuickView();

//ADD THE QQuickView  OBJECT TO QWidget::createWindowContainer
QWidget *container = QWidget::createWindowContainer(view, this);

//ADD SOURCE
view->setSource(QUrl("your.qml"));

//ADD THE CONTAINER TO YOUR LAYOUT.
ui->verticalLayout->addWidget(container);
如果要在布局中插入QML视图,可以使用:

//CREATE THE QQuickWidget
QQuickWidget *quickWidget = new QQuickWidget(this);

//ADD SOURCE
view->setSource(QUrl("your.qml"));

//ADD THE QQuickWidget TO YOUR LAYOUT.
ui->verticalLayout->addWidget(quickWidget);
我将@katamarayudu的代码改为使用
QQuickWidget
,而不是
QQuickView
,如果您想在布局中插入QML视图,可以使用:

//CREATE THE QQuickWidget
QQuickWidget *quickWidget = new QQuickWidget(this);

//ADD SOURCE
view->setSource(QUrl("your.qml"));

//ADD THE QQuickWidget TO YOUR LAYOUT.
ui->verticalLayout->addWidget(quickWidget);
我将@katamarayudu的代码改为使用
QQuickWidget
而不是
QQuickView