Указатель мыши QTableView показать / скрыть проблему с полосой прокрутки таблицы - PullRequest
2 голосов
/ 08 февраля 2012

Я использую QTableView и хочу скрыть указатель мыши на ячейках таблицы, а указатель мыши должен быть виден на заголовке и полосе прокрутки, и для этого я использую события mouseEnter и mouseLeave и движение мыши, чтобы показать / скрыть указатель мыши.

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

Может ли кто-нибудь помочь вам добиться того, чтобы указатель мыши скрывался только в ячейках таблицы и должен быть виден в заголовке и на полосе прокрутки?

1 Ответ

1 голос
/ 14 февраля 2012

QTableView - составной виджет, он наследуется от QAbstractScrollArea, в котором есть виджет QScrollBar.Все, что вам нужно, это создать подкласс QScrollBar и переопределить mouseEnter и mouseLeave для него, как вы это сделали для QTableView.После этого вы вызываете это: QTableView :: setVerticalScrollBar (QScrollBar * scrollBar);

например

class MyScroll : public QScrollBar {
// ...
}

my_table_view->setVerticalScrollBar( new MyScroll(my_table_view) );
...