首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt:如何捕捉QDateEdit单击事件?

Qt:如何捕捉QDateEdit单击事件?
EN

Stack Overflow用户
提问于 2019-04-04 08:22:17
回答 2查看 991关注 0票数 0

我试图通过处理QDateEdit事件来捕捉鼠标单击QEvent::MouseButtonRelease小部件,但无法找到方法。我试图覆盖父部件的QWidget::event方法,但是事件似乎会通过子部件传递给父部件,而QDateEdit在内部处理这些事件而不传播到父部件。是否有正确的解决方案或解决办法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-04 08:52:20

QDateEdit扩展了一个QWidget类。因此,您可以继承QDateEdit,重写virtual void mouseReleaseEvent(QMouseEvent *event)函数,并在那里做您想做的事情。

更新:

函数mouseReleaseEvent实际上不是调用。

尝试将事件筛选器安装到QDateEdit中的行编辑。示例:

MyDateEdit.h

代码语言:javascript
复制
#include <QDateEdit>

class MyDateEdit : public QDateEdit
{
  Q_OBJECT
public:
  MyDateEdit(QWidget *parent = 0);
  bool eventFilter(QObject* object, QEvent* event) override;
};

MyDateEdit.cpp

代码语言:javascript
复制
#include "MyDateEdit.h"    
#include <QDebug>
#include <QEvent>
#include <QLineEdit>

MyDateEdit::MyDateEdit(QWidget *parent) : QDateEdit (parent)
{
  installEventFilter(this);
  lineEdit()->installEventFilter(this);
}

bool MyDateEdit::eventFilter(QObject* object, QEvent* event)
{
  if (object == this || object == lineEdit())
  {
    if (event->type() == QEvent::MouseButtonRelease)
    {
      qDebug() << "Mouse release event";
    }
  }    
  return QDateEdit::eventFilter(object, event);
}
票数 2
EN

Stack Overflow用户

发布于 2019-04-04 09:34:05

其中一种方法是安装一个eventFilter。Qt文档的eventFilter剖面提供了一个如何使用它的示例。

您的窗口类应该覆盖eventFilter

代码语言:javascript
复制
bool MainWindow::eventFilter(QObject *obj, QEvent *event)
{
  if (obj == dateEdit) {
    if (event->type() == QEvent::MouseButtonPress) {
        // do what you want to do
        // alternatively use QEvent::MouseButtonRelease 
        return true;
    } else {
        return false;
    }
  } else {
    // pass the event on to the parent class
    return QMainWindow::eventFilter(obj, event);
  }
}

在窗口构造函数中,在实际的小部件上安装过滤器:

代码语言:javascript
复制
dateEdit->installEventFilter(this);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55511113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档