我正在尝试创建一个嵌入到现有QWidget窗口中的QQuickView子窗口。下面的代码创建了一个新的单独的QQuickView窗口,而不是一个子窗口。
main.cpp
subWindow::subWindow(QWidget* parent) {
QQuickView* view = new QQuickView();
view->setSource(QUrl("qrc:/main.qml"));
view->show();
}
subWindow.cpp
MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent), ui(new Ui::MainWindow) {
subWindow* sw = new subWindow();
QWidget *sub = QWidget::createWindowContainer(sw, this);
sub->setMinimumSize(1061, 511);
sub->setMaximumSize(1061, 511);
sub->setFocusPolicy(Qt::TabFocus);
ui->subVerticalLayout->addWidget(sub);
}
发布于 2018-07-06 03:20:54
如果你想创建一个基于QML
的QWidget
,那么最好使用QQuickWidget
,为此添加:
QT += quickwidgets
发送到您的.pro
最后,你只需要使用下面的代码:
QQuickWidget *sub = new QQuickWidget();
sub->setResizeMode(QQuickWidget::SizeRootObjectToView);
sub->setSource(QUrl("qrc:/main.qml"));
sub->setMinimumSize(1061, 511);
sub->setMaximumSize(1061, 511);
sub->setFocusPolicy(Qt::TabFocus);
ui->subVerticalLayout->addWidget(sub);
https://stackoverflow.com/questions/51197421
复制相似问题