我可以在 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);

如果要在布局中插入QML视图,可以使用QQuickWidget

//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

最新更新