Qt键盘响应问题
现在想在界面上实现功能:点击快捷键(比如字母“W”)将焦点定位到指定的widget,结果实现上遇到了一下问题:
经过尝试发现,只有当焦点在Mainwindow上时,程序才能接受的keyPressEvent响应,如果在鼠标点击了例如tablewidget或者treewidget之后(个人理解是当前焦点不在mainwindow上),再按指定的按键不会有任何反应,请问这个问题怎么解决?谢谢了!
Qt
void MainWindow::keyPressEvent(QKeyEvent??*event)
{
????if(event->key()==Qt::Key_W)
????{
???????? treeWidget1->setFocus();
????}
}
tablewidget->installEventFilter(this); //可以放在构造函数
bool XXX::eventFilter(QObject *target, QEvent *event)
{
if (target == tablewidget)
{
if (event->type() == QEvent::KeyPress) {
QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
if (keyEvent->key() == Qt::Key_W)
{
//do something...
return true;
}
}
}
return QDialog::eventFilter(target, event);
}