在Qt中,有一些特殊的按键比如说Tab键,默认Tab事件(切换焦点)被先捕获了,所以如果想自定义Tab键的使用应该如何实现呢?
在实际需求中我主要是实现QLineEdit、QCheckBox、QPushButton、QToolButton之间的切换,可以根据自己的程序修改切换顺序。当然如果自己不去实现Tab键的功能,就像前面所言,Qt也会去捕获Tab键切换焦点,只不过顺序是死的!那么要想灵活的切换应该怎么实现呢?
1、安装事件过滤器
realm_line_edit->installEventFilter(this);
user_line_edit->installEventFilter(this);
password_line_edit->installEventFilter(this);
check_box->installEventFilter(this); login_button->installEventFilter(this);
forgot_pwd_button->installEventFilter(this); regist_button->installEventFilter(this);
min_button->installEventFilter(this); close_button->installEventFilter(this);
2、重写eventFilter(QObject *obj, QEvent *event)
bool LoginDialog::eventFilter(QObject *obj, QEvent *event)
{
if(obj == realm_line_edit || obj == user_line_edit