(QT 5.14)我想做一个日期选择按钮,在main.qml中调用日历控件Demdiag.qml,main.qml使用QtQuick.Controls 2.5,Demdiag.qml使用QtQuick.Controls 1.4(因为 日历控件
Calendar Controls 1.0中才能用,所心单独做了日历文件Demdiag.qml), 用单击调用,代码为:
select.onClicked: {
//datexz.text = Demdiag.visible = true
//Demdiag.dateDialog.visible = true
//Demdiag.visible = true
}
在单击时显示:TypeError: Value is undefined and could not be converted to an object,不能显示日历面板。(//datexz.text = Demdiag.visible = true
//Demdiag.dateDialog.visible = true
//Demdiag.visible = true上述三种调用方法都不成功)
)
//main.qml
import QtQuick 2.12
import QtQuick.Window 2.2
import QtQuick.Controls 2.5
import QtQuick.Controls.Styles 1.4
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
MainForm {
id: main
select.onClicked: {
//datexz.text = Demdiag.visible = true
//Demdiag.dateDialog.visible = true
//Demdiag.visible = true
}
}
}
//Demdiag.qml
import QtQuick 2.6
import QtQuick.Controls 1.4
import QtQuick.Dialogs 1.2
import QtQuick.Controls.Styles 1.4
Item {
property alias dateDialog: dateDialog
Rectangle {
//(a)
id: dateDialog
//title: "选择日期"
width: 275
height: 300
border {
width: 3
color: "blue"
}
//standardButtons: StandardButton.Save | StandardButton.Cancel
// onAccepted: datexz.text = calendar.selectedDate.toLocaleDateString(
// )
Calendar {
//日历控件
id: calendar
//双击日历就等同于单击“Save”按钮
//onDoubleClicked: dateDialog.click(StandardButton.Save)
}
}
}
//MainForm.ui.qml
import QtQuick 2.0
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.3
Page {
property alias select: select
property alias datexz: datexz
RowLayout {
TextField {
id: datexz
implicitWidth: 120
text: "2022年1月1日"
}
Button {
id: select
text: "选择日期"
}
}
}
Qt dateEdit 选择日期控件
https://www.csdn.net/tags/MtTaAgzsNTkyOTg3LWJsb2cO0O0O.html