例如,我有两种类型的键需要以不同的方式处理。所以,我应该确定按键的类型。我可以在信号电平中分离键,即确定按下了什么键并发出适当的信号:
void QueryTextEdit::keyPressEvent(QKeyEvent *event)
{
switch (event->key()) {
case Qt::Key_Slash :
{
emit slashWasPressed();
break;
}
default :
{
emit otherKeyWasPressed(event);
break;
}
}
}
或者我可以在一个插槽中捕获所有信号并在此处理键类型:
keyHandler(QKeyEvent *event) {
if (event->key() == Qt::Key_Slash) {
// do something
return;
} else {
// do something
}
}
哪种方式更可取?
答案 0 :(得分:0)
看看http://qt-project.org/doc/qt-4.8/qkeyevent.html#key 这提供了按下的键的int代码:)
或者您可以查看QKeyEvent :: text(),它返回键事件的unicode
编辑:@your comment
如果你想处理斜线键并丢弃所有其他键,我会采用方法#2。