首页 > 解决方案 > 在 MDI 子窗口中添加 QML 文件

问题描述

我正在尝试在 MDI 子窗口中添加一些 qml 源文件,当我单击按钮时,我们将在 MDI 区域中显示子窗口,并且显示将是 QML 源文件。我可以在我的 MDI 子窗口中添加一些 qml 吗?. 我非常感谢任何关于此事的回答、建议和想法,谢谢。

这是我在MDI区域添加子窗口的示例代码,我在哪里可以插入添加qml源文件的代码?

void MainWindow::on_action_Weather_triggered()
{

    subwindow3 = new QMdiSubWindow(mdiArea);
    widget3 = new QWidget(subwindow3);
    widget3->show();
    subwindow3->setWidget(widget3);
    subwindow3->resize(500,300);
    subwindow3->setWindowTitle("Weather");
    subwindow3->setAttribute(Qt::WA_DeleteOnClose,false);
    mdiArea->addSubWindow(subwindow3);
    subwindow3->hide();

    mdiArea->setActiveSubWindow(subwindow3);
    subwindow3->show();
}

标签: c++qtqml

解决方案


你必须使用QQuickWidget

*.pro

QT       += quickwidgets

*.cpp

QMdiSubWindow *subwindow = new QMdiSubWindow(mdiArea);
QQuickWidget* widget = new QQuickWidget(subwindow);
widget->setResizeMode(QQuickWidget::SizeRootObjectToView);
widget->setSource(QUrl("qrc:/main.qml"));
widget->show();
subwindow->setWidget(widget);
subwindow->resize(500,300);
subwindow->setWindowTitle("Weather");
subwindow->setAttribute(Qt::WA_DeleteOnClose,false);
mdiArea->addSubWindow(subwindow);
mdiArea->setActiveSubWindow(subwindow);
subwindow->show();

推荐阅读