我为了实现点击QLineEdit时弹出QCalendarWidget,我重新实现了focusInEvent 事件,也可以弹出QCalendarWidget,但是当我点击日期后,日期并没有加入到MyLineEdit中,而且提示***.exe停止工作,我一步步跟踪下来,发现时运行到一个QLineEdit的editingFinished()信号时报错的,我不知道这是为什么,请知情人士提供答案,在下感激不尽
void MyLineEdit::focusInEvent ( QFocusEvent * e )
{
if (calendarWidget == NULL)
{
calendarWidget = new QCalendarWidget;
calendarWidget->show();
calendarWidget->setSelectionMode(QCalendarWidget::SingleSelection);
//calendarWidget->move()
}
connect(calendarWidget, SIGNAL(clicked( const QDate &)), this, SLOT(setDate()));
calendarWidget->show();
//QLineEdit::focusInEvent(e);
//emit callcalendarWidget();
}
void MyLineEdit::setDate( )
{
QDate date = calendarWidget->selectedDate();
this->setText(date.toString("yyyy-MM-dd"));
//calendarWidget->hide();
disconnect(calendarWidget, SIGNAL(clicked( const QDate &)), this, SLOT(setDate()));
delete calendarWidget;
calendarWidget = NULL;
}