マウスまたはキーボード (タブまたは矢印キー) で行を選択するたびに、SLOT メソッドを呼び出す SIGNAL currentCellChanged を発行する QTableWidget があります。どちらが使用されたか (マウスまたはキーボード) を調べることは可能ですか?
質問する
702 次
1 に答える
1
通常の Designer フォーム クラスを使用しており、テーブル ウィジェットはそのフォームの一部であると仮定します。
フォームクラスのコンストラクターでは、次のことを行う必要があります。
ui->tableWidget->viewport()->installEventFilter(this);
クラスにメソッドを追加eventFilter
します ( virtual を再実装しますQObject::eventFilter
):
bool MyForm::eventFilter(QObject* object, QEvent* event) {
if (object == ui->tableWidget->viewport()) {
if (event->type() == QEvent::KeyPress) {
method = method_keyboard;
} else if (event->type() == QEvent::MouseButtonPress) {
method = method_mouse;
}
}
return false;
}
スロットでは、method
変数の値をチェックして、どのコントロールが使用されたかを調べることができます。
于 2013-06-12T09:33:33.307 に答える