Russian Qt Forum

Qt => Вопросы новичков => Тема начата: yl5der от Август 04, 2013, 16:20



Название: Блокировка контекстного меню в ячейке TableWidget
Отправлено: yl5der от Август 04, 2013, 16:20
Здравствуйте. Прошу подсказать. Как заблокировать щелчок правой клавиши мыши в ячейке TableWidget, чтобы контекстное меню не вызывалось?
Вот набросал
Код:
bool editorEvent(QEvent* event, QAbstractItemModel* model, const QStyleOptionViewItem& option, const QModelIndex& index) {
    if (event->type() == QEvent::MouseButtonRelease)
    {
    QMouseEvent *ms = static_cast<QMouseEvent*>(event);
    if (ms->button() == Qt::RightButton)
    {
        QMessageBox* box = new QMessageBox();
                  box->setWindowTitle(QString("Hello"));
                  box->setText(QString("You Pressed: "));
                  box->show();
    return true;
    }
    }
else
    return QItemDelegate::editorEvent(event, model, option, index);
}
Это переопр. функция нового делегата QItemDelegate. Детект правой кнопки есть, но редактирование не работает.


Название: Re: Блокировка контекстного меню в ячейке TableWidget
Отправлено: kambala от Август 04, 2013, 17:56
if (event->type() == QEvent::ContextMenu)
    return true;


Название: Re: Блокировка контекстного меню в ячейке TableWidget
Отправлено: yl5der от Август 04, 2013, 23:16
Спасибо, все так просто))
В eventFilter работает.