选择后DateEdit框内显示的是从弹出的日历中选择的Date
具体的实现代码:
//构造函数里设置日历
首先使calendarWidget隐藏。注:calendarWidget是calendar控件,在设计页面直接拖拽即可。
ui.calendarWidget->hide();
//点击后显示日历
connect(ui.pushButton,SIGNAL(clicked()),ui.calendarWidget,SLOT(show()));
ui.calendarWidget->setSelectionMode(QCalendarWidget::SingleSelection);
//自定义槽setdate,用于进行处理点击calendarWidget的事情
connect(ui.calendarWidget,SIGNAL(clicked(const QDate &)),this,SLOT(setdate()));
槽setdate()的操作如下:
// selectedDate返回从弹出的日历中点选的Date
ui.dateEdit->setDate(ui.calendarWidget->selectedDate());
//隐藏calendar控件
ui.calendarWidget->hide();
好了,这样就可以实现上面的效果了。
PS.其实connect(ui.calendarWidget,SIGNAL(clicked(const QDate &)),this,SLOT(setDate(const QDate &)))就可以直接返回选中的日期至dateEdit,但带来的一个问题是无法终止选择状态,日历会一直弹在外面。