Вопрос/проблема
Я попытался повторно реализовать метод event
в пользовательском делегате для обработки кликов. Делегат используется для отображения ячеек таблицы в виде таблицы. Однако я не получаю никаких событий для делегата (метод никогда не вызывается в соответствии с отладчиком). Есть ли что-то особенное, что мне нужно сделать, чтобы мой делегат мог отслеживать события (в частности, вход/выход мыши, щелчки)?
Контекст
Я хотел бы создать собственное представление данных для ячеек таблицы. Функционал должен быть близок к кнопке, но немного отличаться. Я читал, что есть два варианта реализации кнопок в таблице: либо установка виджета ячейки, который предположительно имеет высокую стоимость производительности (я не совсем понял, почему), либо использование делегата.
Так как я хочу, чтобы поведение отличалось от поведения кнопки, и из-за мифа о скорости я решил использовать делегата.
QPainter.drawPixmap
, я думаю, нет ничего, что могло бы потреблять события. Вопрос в том, нужно ли мне как-то включать события для моего делегата, или есть какая-то причина, по которой делегат не должен получать события? - person ted   schedule 07.05.2015QAbstractItemView::clicked()
вашего табличного представления для обработки щелчков мыши по нему. Не нужно иметь дело с событиями вообще. - person vahancho   schedule 07.05.2015QAbstractItemDelegate
, и на самом деле я хотел бы обрабатывать события мыши вниз/вверх и мыши над/наведением мыши. Также, даже если выяснится, что есть методыbuttonDown/up
,mouseEnter/leave
, я все равно хотел бы выяснить, почему моя функцияevent
вообще не вызывается. - person ted   schedule 07.05.2015QAbstractItemDelegate
этоQObject
. Он не может принимать и обрабатывать события графического интерфейса. Опять же - обрабатывайте события GUI в классах на основе QWidget, например, в вашем табличном представлении. - person vahancho   schedule 07.05.2015