• 5368阅读
  • 6回复

在QCalendar中怎样实现双击并能知道双击的是那一天 [复制链接]

上一主题 下一主题
离线bymars
 
只看楼主 正序阅读 楼主  发表于: 2009-06-10
我用mouseevent做的但只能得到双击时的坐标位置,不会把他处理成日期。
[ 此帖被bymars在2009-06-10 20:17重新编辑 ]
离线yangwoai520
只看该作者 6楼 发表于: 2010-05-01
同问,如果LZ解决了能分享下吗
离线bymars
只看该作者 5楼 发表于: 2009-06-10
我可不可以直接用QDate QCalendarView::handleMouseEvent(QMouseEvent *event)
这个方法?
离线bymars
只看该作者 4楼 发表于: 2009-06-10
饿。。。语气问题。。。
我看了qt内部实现的代码了。。。还是不会用
我就是想实现通过双击添加当日日程。。不知道怎么实现
离线mmmou2000
只看该作者 3楼 发表于: 2009-06-10
哎 问问题的比回答问题还火气大 。。。

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模式
离线bymars
只看该作者 2楼 发表于: 2009-06-10
我说的是双击。。。。双击。。。。
离线mmmou2000
只看该作者 1楼 发表于: 2009-06-10
void QCalendarWidget::clicked ( const QDate & date )
快速回复
限100 字节
 
上一个 下一个