How to set stylesheet for the current item in QTableView

Uga Buga picture Uga Buga · May 29, 2014 · Viewed 20k times · Source

When QTableView edit control is visible for the current item the shylesheet of the edit takes place. When there is no active edit control in the QTableView the current item is styled using the QTableView { selection-background-color: } How to set different style only for the current item?

Current item visible only when QTableView has focus Active edit-box on the current item

Answer

Fabio picture Fabio · Jul 18, 2014

Qt style sheets support sub-controls and pseudo states, you can use it to improve your customization. (see http://qt-project.org/doc/qt-5/stylesheet-reference.html#list-of-pseudo-states )

In this case you can use the ::item sub-control and the :focus pseudo state (the "current" pseudo state doesn't exist, but the :focus does the same).

This is an example that you can use:

QTableView::item:focus
{
   selection-background-color: yellow;
}

enter image description here

See also http://qt-project.org/doc/qt-5/stylesheet-examples.html#customizing-qtreeview