たとえば、さまざまな方法で処理する必要がある2種類のキーがあります。だから、私は押されたキーの種類を決定する必要があります。キーを信号レベルで分離できます。つまり、どのキーが押されたかを判別し、適切な信号を発します。
void QueryTextEdit::keyPressEvent(QKeyEvent *event)
{
switch (event->key()) {
case Qt::Key_Slash :
{
emit slashWasPressed();
break;
}
default :
{
emit otherKeyWasPressed(event);
break;
}
}
}
または、1つのスロットですべての信号をキャッチし、ここでキータイプを処理できます。
keyHandler(QKeyEvent *event) {
if (event->key() == Qt::Key_Slash) {
// do something
return;
} else {
// do something
}
}
どの方法がより好ましいですか?