|
楼主的用法就如同给LineEdit增加一个clicked的功能嘛,可以尝试使用一下事件滤波器。
1、在.h中声明- //signals:
- // void clicked(); //如果需要产生信号
- protected:
- bool eventFilter(QObject *obj, QEvent *event);
复制代码 2、在.cpp中构造函数中,安装事件滤波器- ui->lineEdit->installEventFilter(this);
复制代码 3、cpp中实现函数体- bool MainWindow::eventFilter(QObject *obj, QEvent *event)
- {
- if(obj == ui->lineEdit && event->type() == QEvent::MouseButtonPress)
- {
- QMouseEvent *me = (QMouseEvent*)event;
- if(me->button() == Qt::LeftButton)
- {
- //emit clicked();
- qDebug() << "clicked";
- ui->lineEdit->clear();
- }
- }
- return QMainWindow::eventFilter(obj,event);
- }
复制代码 |
|