哎 问问题的比回答问题还火气大 。。。
1)这个是QT的内部实现 参考吧
QDate QCalendarView::handleMouseEvent(QMouseEvent *event)
{
QCalendarModel *calendarModel = ::qobject_cast<QCalendarModel *>(model());
if (!calendarModel)
return QDate();
QPoint pos = event->pos();
QModelIndex index = indexAt(pos);
QDate date = calendarModel->dateForCell(index.row(), index.column());
if (date.isValid() && date >= calendarModel->minimumDate
&& date <= calendarModel->maximumDate) {
return date;
}
return QDate();
}
2) 你确认重写QCalendarWidget::mouseDoubleClickedEvent() 有用吗? 在源代码里 mouse Double click 的事件是在 QCalendarView 里助理的。 看Qt 的MVC模式