Как правильно щелкнуть и дважды щелкнуть QTableWidget (Qt)?

У меня есть QTableWidget, и мне нужно вызвать некоторые функции, основанные на щелчке пользователя по ячейке.

В настоящее время я использую следующие сигналы и слоты:

// cellClicked(int,int)
void MyClass::on_myTableWidget_cellClicked(int row, int column)
{
    qDebug() << "Click";
}

// cellDoubleClicked(int,int)
void MyClass::on_myTableWidget_cellDoubleClicked(int row, int column)
{
    qDebug() << "Double Click";
}

Проблема в том, что on_myTableWidget_cellClicked вызывается только тогда, когда я использую левую кнопку мыши. Если я использую правую кнопку мыши, это не работает. И on_myTableWidget_cellDoubleClicked вызывается как левой, так и правой кнопкой мыши.

На самом деле я хочу, чтобы on_myTableWidget_cellClicked вызывался с помощью как левой, так и правой кнопки мыши, и чтобы on_myTableWidget_cellDoubleClicked вызывался только тогда, когда я использую левую кнопку мыши.

Как я могу это сделать? Просто используя eventFilter? Если да, как я могу получить правильную строку из QTableWidget?

Я использую Qt версии 5.3.2.


person KelvinS    schedule 22.12.2016    source источник


Ответы (1)


Когда вы щелкаете правой кнопкой мыши, запускается контекстное меню, связанное с сигналом/событием.

Подробнее см. здесь.

person Michał Walenciak    schedule 22.12.2016