我有一个 QTableWidget,每当我用鼠标或键盘(制表键或箭头键)选择一行时,它就会发出 SIGNAL currentCellChanged 调用 SLOT 方法。是否可以找出使用了哪一个(鼠标或键盘)?
问问题
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 回答