我们先定义三个成员变量和两个槽函数:
QCalendarWidget *calendarWidget;
QLineEdit *calendarlineEdit;
QLabel *calendarlabel;
private slots:
void showTimeSlot();
void setDataSlot();
在构造函数中加入如下代码:
//实例 QLabel 控件
calendarlabel = new QLabel(this);
calendarlabel->setText("choose data:");
//位置
calendarlabel->setGeometry(QRect(30,50,120,25));
calendarlineEdit = new QLineEdit(this);
calendarlineEdit->setGeometry(QRect(110,50,150,22));
//事件
connect(calendarlineEdit,SIGNAL(cursorPositionChanged(int,int)),this,SLOT(showTimeSlot()));
//实例时间控件
calendarWidget = new QCalendarWidget(this);
//位置
calendarWidget->setGeometry(20,75,350,180);
//隐藏时间控件
calendarWidget->setHidden(true);
//时间控件点击事件
connect(calendarWidget,SIGNAL(clicked(QDate)),this,SLOT(setDataSlot()));
槽函数:
void MainWindow::showTimeSlot()
{
calendarWidget->setHidden(false);
}
void MainWindow::setDataSlot()
{
//接收选择时间
QDate date = calendarWidget->selectedDate();
//时间格式化
QString str = date.toString("yyyy-MM-dd");
//赋值
calendarlineEdit->setText(str);
//日期控件隐藏
calendarWidget->setHidden(true);
}