我可以在qt小部件应用程序中使用快速控件吗?
问题描述:
我需要材料样式替换标准窗口小部件,并且使用自定义窗口小部件很难实现它们。我想知道是否有任何方法可以包含快速控制模块的小部件,并将它们用作常规小部件?我可以在qt小部件应用程序中使用快速控件吗?
答
如果您的应用程序是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);
答
您可以使用QQuickWidget
如果要插入您的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
。