Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: QTableWidget - мышиные события
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
flankerr
Есть форма созданная в дизайнере. В дизейнере на форму кинут QTableWidget.
Надо отлавливать мышинные события. Вопрос как ?

Сигналов мышиных нет - елси только "клики" при это понять от какой кнопки это клик нельзя. ЭвентФильтр сообщений мышки тоже не ловит.
Унаследовать свой класс и переопределить обработчик сообщений не могу т.к. см выше создано всё через дизайнер - так что вариант отпадает.

Кто подскажет ? :rolleyes:
kwisp
Цитата
Mouse move events will occur only when a mouse button is pressed down, unless mouse tracking has been enabled with QWidget::setMouseTracking().
Цитата(flankerr @ 18.2.2011, 15:04) *
при это понять от какой кнопки это клик нельзя

а как ты определяешь?

Цитата(flankerr @ 18.2.2011, 15:04) *
Унаследовать свой класс и переопределить обработчик сообщений не могу т.к. см выше создано всё через дизайнер - так что вариант отпадает.

не факт.
в дизайнер можно свои изменённые виджеты добавлять.
flankerr
Цитата(kwisp @ 18.2.2011, 15:24) *
Цитата
Mouse move events will occur only when a mouse button is pressed down, unless mouse tracking has been enabled with QWidget::setMouseTracking().
Цитата(flankerr @ 18.2.2011, 15:04) *
при это понять от какой кнопки это клик нельзя

а как ты определяешь?

что даёт setMouseTracking() пока не понял...

В том то и вопрос что ни как. А как можно то ???
//Signals :
void cellActivated ( int row, int column )
void cellChanged ( int row, int column )
void cellClicked ( int row, int column )
void cellDoubleClicked ( int row, int column )
void cellEntered ( int row, int column )
void cellPressed ( int row, int column )
void itemActivated ( QTableWidgetItem * item )
void itemChanged ( QTableWidgetItem * item )
void itemClicked ( QTableWidgetItem * item )
void itemDoubleClicked ( QTableWidgetItem * item )
void itemEntered ( QTableWidgetItem * item )
void itemPressed ( QTableWidgetItem * item )

нет тут инфы о мыше.

Можно поставить
eventFilter(QObject *obj, QEvent *event)
но тут не получается отловить тот же
QEvent::MouseButtonPress


Цитата
Цитата(flankerr @ 18.2.2011, 15:04) *
Унаследовать свой класс и переопределить обработчик сообщений не могу т.к. см выше создано всё через дизайнер - так что вариант отпадает.
не факт.
в дизайнер можно свои изменённые виджеты добавлять.

Свои виджеты добавить можно на постояной основе - т.е. они будут свититься как все остальные это оправдано если у тебя есть компонент который используется постоянно а если это разово то нет смысла.
kwisp
Цитата(flankerr @ 18.2.2011, 16:52) *
но тут не получается отловить тот же

QEvent::MouseButtonPress

код покажи
abc
установи фильтр не на tablewidget, а на tablewidget->viewport
это у меня работало на tableview, разницы, наверное, нет
flankerr
Цитата(abc @ 18.2.2011, 22:00) *
установи фильтр не на tablewidget, а на tablewidget->viewport это у меня работало на tableview, разницы, наверное, нет

Плин, ларчик то просто открывался - про вьюпорт не подумал.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.