Указатель мыши QTableView показывает / скрывает проблему с полосой прокрутки tableview

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

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

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


person dev    schedule 08.02.2012    source источник


Ответы (1)


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

e.g.

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

my_table_view->setVerticalScrollBar( new MyScroll(my_table_view) );
person Dmitriy    schedule 14.02.2012