c++ - 在 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();
}
解决方案
你必须使用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();
推荐阅读
- javascript - 如何动态计算给定对象数组的行跨度以显示表格
- forms - Rxwebvalidators 条件验证器在 formArray 的情况下不起作用
- java - 在 FOR 循环中使用 ParseObject
- python - Pandas 时间序列图:辅助 y 轴标签,设置下限
- c# - 如何在 C# 中检查代码是否在 AOT 中运行?
- azure - 如何使用 TOTP 通过 Azure AD MFA 对 VPN 进行身份验证?
- c - Arduino 和 SX1278 的 LoRa B 类实现 TDMA
- javascript - 添加节点后重复的对象
- mysql - 错误 1062:故障转移后从站上的重复条目
- c# - double.Parse(123.342) System.FormatException: '输入字符串的格式不正确。'