Qt Qml自定义模态对话框
自带的messagedialog不好使,自定义一个,简单的:
DialogPop.qml
/*** @brief 功能:此文件实现了模态框* @author lanmanck* @date 2023-07-25* CopyRight (C) lanmanck*/
import QtQuick 2.1
import QtQuick.Window 2.0
import QtQuick.Layouts 1.0
import QtQuick.Controls 1.0
import QtQuick.Controls.Styles 1.0
import QtQuick.Dialogs 1.3Window{id:dialogvisible: falseflags: Qt.Dialogmodality: Qt.WindowModalproperty alias text: content.textsignal accepted()signal rejected()title: qsTr("提示")width:content.implicitWidth+80Text {id:contentanchors.centerIn: parentfont.pointSize: 10lineHeight: 1.5wrapMode: Text.WordWrapLayout.minimumWidth: 300}Row{spacing: 10anchors.bottom: parent.bottomanchors.right: parent.rightanchors.bottomMargin: 10anchors.rightMargin: 10Button {text: qsTr("确定")onClicked: {accepted()close()}}Button {text: qsTr("取消")onClicked: {rejected()close()}}}
}
好人做到底,使用:
// 定义 DialogPop{id:dialogPoponAccepted: {var map = dataSource.setCurrentTime();if(map === false)toast.show("操作失败")}}// 调用MultiButton {id: setTimetext: "时间: "items: ["ALL"]enabled: truecurrentSelection: 0onSelectionChanged:{dialogPop.text = "确定要同步时间吗?"dialogPop.show()}}