我正在尝试创建一个嵌入现有 QWidget 窗口内的 QQuickView 子窗口。下面的代码我创建了一个新的单独的 QQuickView 窗口而不是子窗口。
主要.cpp
subWindow::subWindow(QWidget* parent) {
QQuickView* view = new QQuickView();
view->setSource(QUrl("qrc:/main.qml"));
view->show();
}
子窗口.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);
}
最佳答案
如果你想创建一个基于 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);
关于c++ - QtWidget 窗口的 QQuickView 子窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51197421/