Поймать двойной щелчок в неиспользуемой области QTableView

Мое приложение начинается с пустой таблицы, и я хочу использовать разные методы для добавления элементов. Это нужно сделать, дважды щелкнув неиспользуемую область таблицы (или «фон»), которая не занята никакими ячейками. Если дважды щелкнуть ячейку, я хочу поведение по умолчанию.

Я нашел способ сделать это путем повторной реализации QAbstractScrollArea::mouseDoubleClickEvent() метод в моем TestTable учебный класс:

#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?
  • Я не знаю каких-либо ограничений моей текущей реализации. Есть ли очевидные предостережения?

1

Решение

Если вы не хотите подкласс QTableView, пытаться installEventFilter

0

Другие решения


По вопросам рекламы [email protected]