QTableView鼠标指针显示/隐藏tableview滚动条的问题

时间:2012-02-08 11:18:33

标签: qt qtableview

我正在使用QTableView,我想在表格单元格上隐藏鼠标指针,鼠标指针应该在标题和滚动条上可见,为此我使用mouseEnter和mouseLeave事件和鼠标移动来显示/隐藏鼠标指针。

但问题是当鼠标指针从表数据单元移动到表外时,当鼠标指针到达滚动条时,它是不可见的,因为当鼠标指针在滚动条上时我没有得到mouseLeave事件,而且那个时候QTableView中没有鼠标移动事件。

任何人都可以帮助实现仅隐藏在表格单元格上的鼠标指针,并且应该在标题和滚动条上可见吗?

1 个答案:

答案 0 :(得分:1)

QTableView是一个复合小部件,它继承自QAbstractScrollArea,其中包含一个QScrollBar小部件。你所需要的就是为QScrollB提供子类,并为它重新实现mouseEnter和mouseLeave,就像你为QTableView所做的那样。 之后你称之为: QTableView :: setVerticalScrollBar(QScrollBar * scrollBar);

e.g。

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

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