例如,我有两种需要以不同方式处理的键。所以,我应该确定按下的键是什么类型。我可以在信号级别分离键,即确定按下了什么键并发出适当的信号:
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
}
}
哪种方式更可取?