我正在尝试创建一个嵌入到现有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);
}
答案 0 :(得分:1)
如果您想基于QWidget
创建一个QML
,则最好使用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);