Elm*_*lmi 5 c++ qt key-events qt5
这是一个初学者的问题,但我找不到解决方案。
我使用的是一个自己的对象,该对象继承QLineEdit并删除数字作为输入(现在可以正常运行)。
现在,当用户按下退出按钮时,我想接收一个事件。textChanged()-event 不会发生这种情况。根据文档,没有特殊的转义事件。那么还可以怎么做呢?
谢谢!
您可以实施keyPressEvent:
void LineEdit::keyPressEvent(QKeyEvent *event)
{
if (event->key() == Qt::Key_Escape)
{
...
}
QLineEdit::keyPressEvent(event);
}
Run Code Online (Sandbox Code Playgroud)
或者实施eventFilter:
bool LineEdit::eventFilter(QObject *obj, QEvent * event)
{
if((LineEdit *)obj == this && event->type()==QEvent::KeyPress && ((QKeyEvent*)event)->key() == Qt::Key_Escape )
{
...
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
使用该eventFilter方法时,请在构造函数中安装事件过滤器:
this->installEventFilter(this);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1342 次 |
| 最近记录: |