应用程序输出:
"MyLineEdit类的keypress事件已触发,键盘按下"
"2022-09-09 22:04:33.810" "主窗口的键盘事件触发,键盘按下"
"主窗口的事件过滤器触发"
"mylineEdit的event函数已经触发"
"MyLineEdit类的keypress事件已触发,键盘按下"
"2022-09-09 22:05:29.685" "主窗口的键盘事件触发,键盘按下"
"主窗口的事件过滤器触发"
"mylineEdit的event函数已经触发"
"MyLineEdit类的keypress事件已触发,键盘按下"
"2022-09-09 22:05:33.897" "主窗口的键盘事件触发,键盘按下"
"主窗口的事件过滤器触发"
"mylineEdit的event函数已经触发"
"MyLineEdit类的keypress事件已触发,键盘按下"
"2022-09-09 22:05:34.483" "主窗口的键盘事件触发,键盘按下"
"主窗口的事件过滤器触发"
"mylineEdit的event函数已经触发"
"MyLineEdit类的keypress事件已触发,键盘按下"
"2022-09-09 22:05:35.553" "主窗口的键盘事件触发,键盘按下"
新建一个mylineedit类
#ifndef MYLINEEDIT_H
#define MYLINEEDIT_H
#include
class MyLineEdit : public QLineEdit
{
Q_OBJECT
public:
explicit MyLineEdit(QWidget *parent=0);
bool event(QEvent *event);//src6_2
protected:
void keyPressEvent(QKeyEvent *event);
};
#endif // MYLINEEDIT_H
#include "mylineedit.h"
#include
#include
MyLineEdit::MyLineEdit(QWidget *parent):QLineEdit(parent)
{
}
bool MyLineEdit::event(QEvent *event)//src6_2
{
if(event->type()==QEvent::KeyPress)
{
qDebug()installEventFilter(this);//在主窗口的lineedit控件安装事件过滤器,src6_2
}
MainWindow_6_1::~MainWindow_6_1()
{
delete ui;
}
bool MainWindow_6_1::eventFilter(QObject *obj, QEvent *event)//src_6_2事件过滤器
{
if(obj==line_edit)
{
if(event->type()==QEvent::KeyPress)
{
qDebug()
关注
打赏