On 02/05/2016 10:34 AM, Murphy, Sean wrote:
I’m still struggling with how to customize the selection color for items on a
QTableView

I use a QStyledItemDelegate.
In the paint(painter,option,index) method I create my own QPalette based on
selection etc and then call the base class paint function.

    QStyleOptionViewItemV4 subop = option;
    QPalette pal = qApp->palette();
    if( selected ) {
       pal.setColor(QPalette::Highlight,Qt::darkGray);
       pal.setColor(QPalette::WindowText,Qt::white);
       pal.setColor(QPalette::HighlightedText,Qt::white);
       pal.setColor(QPalette::Text,Qt::white);
       subop.state |= QStyle::State_Selected;
       subop.palette = pal;
   }

   BaseClass::paint(painter,subop,index);       // Note: subop.

(previously posted as
http://lists.qt-project.org/pipermail/interest/2016-January/020760.html). I
currently color the rows with custom colors based on the data being shown in
each row in my model’s data(const QModelIndex &currIndex, int role) when role ==
Qt::BackgroundRole.

I’d like for that color to persist when the user selects a row; so either I want
the selection to only paint the dotted line around the entire row without
changing the background color to the OS’s default selection color, or I’d also
be fine if there was no change at allwhen the row is selected. The only reason I
allow rows to be selected at all is apparently that is required to allow the
user to start a drag on a row when they are attempting to reorder the rows in
the table. I can’t seem to figure out where this needs to happen.

Correct me if I’m wrong on any of the following:

1.I can’t use a stylesheet because the colors are different on a row-by-row 
basis

2.I don’t think the selection background color is controlled anywhere in the 
model?

3.I really don’t have any need for the user to be able to select anything – the
table is meant to be a read-only display of data - EXCEPT it appears that being
able to select items is a requirement for the drag-n-drop system?

Any pointers?

Sean



_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to