• 8356阅读
  • 2回复

深夜求助,关于QCalendarWidget [复制链接]

上一主题 下一主题
离线szh1987
 
只看楼主 倒序阅读 楼主  发表于: 2010-04-12
我为了实现点击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;
 
}

离线yaoweimin168

只看该作者 1楼 发表于: 2012-10-10
connect(calendarWidget, SIGNAL(clicked( const QDate &)), this, SLOT(setDate()));
这里出错了,信号函数带参数,槽函数就应该带参数
离线zhongfugutao

只看该作者 2楼 发表于: 2012-10-10
用QDateEdit  再调用setCalendarPopup(true)可以实现楼主要的效果吧
快速回复
限100 字节
 
上一个 下一个