Автор: flankerr 18.2.2011, 15:04
Есть форма созданная в дизайнере. В дизейнере на форму кинут QTableWidget.
Надо отлавливать мышинные события. Вопрос как ?
Сигналов мышиных нет - елси только "клики" при это понять от какой кнопки это клик нельзя. ЭвентФильтр сообщений мышки тоже не ловит.
Унаследовать свой класс и переопределить обработчик сообщений не могу т.к. см выше создано всё через дизайнер - так что вариант отпадает.
Кто подскажет ?
Автор: 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)
при это понять от какой кнопки это клик нельзя
а как ты определяешь?
Цитата(flankerr @ 18.2.2011, 15:04)
Унаследовать свой класс и переопределить обработчик сообщений не могу т.к. см выше создано всё через дизайнер - так что вариант отпадает.
не факт.
в дизайнер можно свои изменённые виджеты добавлять.
Автор: flankerr 18.2.2011, 16:52
Цитата(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 18.2.2011, 17:09
Цитата(flankerr @ 18.2.2011, 16:52)
но тут не получается отловить тот же
QEvent::MouseButtonPress
код покажи
Автор: abc 18.2.2011, 22:00
установи фильтр не на tablewidget, а на tablewidget->viewport
это у меня работало на tableview, разницы, наверное, нет
Автор: flankerr 21.2.2011, 13:25
Цитата(abc @ 18.2.2011, 22:00)
установи фильтр не на tablewidget, а на tablewidget->viewport это у меня работало на tableview, разницы, наверное, нет
Плин, ларчик то просто открывался - про вьюпорт не подумал.