qt - 显示消息对话框
问题描述
当用户点击 QML 窗口中的按钮时,是否可以显示 QML 对话框?
示例:
当用户单击菜单栏中的帮助 -> 关于时,应显示关于对话框:
import QtQuick 2.12
import QtQuick.Layouts 1.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.12
import "components"
ApplicationWindow {
id: window
visible: true
width: 1040
height: 480
aboutDlg: aboutDialog {} // does not work...
menuBar: MenuBar {
Menu {
title: qsTr("Help")
MenuItem {
text: qsTr("About")
onTriggered: aboutDlg.open();
}
}
...
组件/AboutDialog.qml
import QtQuick 2.2
import QtQuick.Dialogs 1.1
MessageDialog {
id: aboutDialog
title: "May I have your attention please"
text: "It's so cool that you are using Qt Quick."
onAccepted: {
console.log("And of course you could only agree.")
Qt.quit()
}
}
当我删除该行时boutDlg: aboutDialog {} // does not work...
,单击“关于”菜单项时报告以下错误:
qrc:/main.qml:61: ReferenceError: aboutDlg 未定义
我怎样才能做到这一点?
解决方案
推荐阅读
- react-native - react-native 中 mouseenter 和 mouseleave 事件的等价物是什么
- azure-resource-manager - 如何使用 ARM 在 Azure Databricks 中添加 RBAC
- javascript - 将 IF 语句压缩为似乎杀死了
- apache-kafka - 配置 kafka 监听器
- oracle - Is it possible to create master-detail relationship in Oracle Forms when both of the blocks are based on procedure?
- php - Need to insert in products table from more than one tables with dynamic user id
- selenium - 如何在 xpath 表达式中添加 OR 逻辑?
- c# - Oauth2 使用 ASP .net 核心 MVC 登录到 Google api
- javascript - Show all DOM nodes in html div
- sql - SequoiaDB查询时如何选择索引扫描或表扫描?