Date Edit

 

选择后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,但带来的一个问题是无法终止选择状态,日历会一直弹在外面。


你可能感兴趣的:(QT)