Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Highlight item with mouse hover in QTreeView?

I have a QStandardItemModel that I am displaying as a QTreeView with multiple columns. How can I make it highlight rows when the mouse hovers over them?

Related pages

  • How to catch mouse over event of QTableWidget item in pyqt?: similar question using QTableWidget instead of Q*View.
  • Customizing QListView: suggests it is possible to do it very easily with stylesheets, but I don't quite follow the c++.
  • How to highlight the entire row on mouse hover in QTableWidget
  • QListView selection with highlight/hover
like image 975
eric Avatar asked Mar 02 '15 04:03

eric


2 Answers

You can achieve this by a stylesheet

treeView->setStyleSheet("QTreeView::item:hover{background-color:#FFFF00;}");
like image 140
Lahiru Chandima Avatar answered Nov 15 '22 07:11

Lahiru Chandima


Lahiru's answer is easy to translate to PyQt/PySide, as the input to setStyleSheet doesn't need any modification: it is the same in Qt/PyQt/PySide:

treeView.setStyleSheet("QTreeView::item:hover{background-color:#999966;}")

I found it helpful to read the Overview of style sheet syntax for Qt. Also, this answer has some nice examples on using style sheets in PySide/PyQt.

like image 35
eric Avatar answered Nov 15 '22 07:11

eric