【发布时间】:2020-07-07 17:46:12
【问题描述】:
我的应用程序从一个空表开始,我想实现不同的方法来添加项目。一种方法是双击表格中未被任何单元格占用的未使用区域(或“背景”)。双击单元格时,我想要默认行为。
我找到了通过在我的 TestTable 类中重新实现 QAbstractScrollArea::mouseDoubleClickEvent() 方法来做到这一点的方法:
#include <QMouseEvent>
#include <QTableView>
class TestTable : public QTableView
{
Q_OBJECT
signals:
void backgroundDoubleClickEvent(void);
protected:
void mouseDoubleClickEvent (QMouseEvent* e)
{
if (indexAt(e->pos()).isValid())
{
QTableView::mouseDoubleClickEvent(e);
}
else
{
e->accept();
emit backgroundDoubleClickEvent();
}
}
};
- 这可行,但有没有更优雅的方式来做到这一点,而无需子类化
QTableView? - 我不知道我当前的实现有任何限制。是否有明显的警告?
【问题讨论】:
标签: c++ mouseevent double-click qtableview qt4.8