每当我用鼠标或键盘选择行(制表符或箭头键)时,我都会有一个QTableWidget发出SIGNAL currentCellChanged调用SLOT方法。是否有可能找出使用了哪一个(鼠标或键盘)?
答案 0 :(得分:1)
我假设您使用的是常规Designer表单类,表格小部件是该表单的一部分。
在表单类的构造函数中,您应该这样做:
ui->tableWidget->viewport()->installEventFilter(this);
将eventFilter
方法添加到您的课程中(重新实现虚拟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
变量的值,以找出使用的控件。