PDA

View Full Version : How to change the QTreeWidgetItem background images on selected event in style sheet.



Rhythm_2020
2nd June 2014, 06:44
Dear All,

I am newbie in qt gui development, i have created the QTreeWidget Class and added the QTreeWidgetItems liks,

class xyz: public QTreeWidget
{
QOBJECT

public:
xyx (QWidget *inParent = 0 );

private:
QTreeWidgetItem *aItem;
};

in c file i have created the QTreeWidgetItem like this

QTreeViewItem *a1 = new QTreeWidgetItem(this);
a1->setBackground = (0,QBrush(QImage(":/Images/001.png")));

QTreeViewItem *a2 = new QTreeWidgetItem(this);
a2->setBackground = (0,QBrush(QImage(":/Images/003.png")));

the images are displayed successfully, in the run time when the a2item selected the 003.png image will display in the a1 and when the a2 item selected the 004.png image will display i am using style sheet.

please give suggestions for me to display the different images in the item when the item selected.

sorry for the bad english.

Thanks in advance.

Rajesh.Rathod
2nd June 2014, 14:25
Try below style sheet in which you can replace background-color with image.
a1->setStyleSheet(" QTreeWidget::item { background-color: yellow; } QTreeWidget::item:selected { background-color: blue; }");

Rhythm_2020
3rd June 2014, 05:59
Thanks for your reply,

One mistake in my code

QTreeViewItem *a1 = new QTreeWidgetItem(this);
a1->setBackground = (0,QBrush(QImage(":/Images/001.png")));

it should be

QTreeWidgetItem *a1 = new QTreeWidgetItem(this);
a1->setBackground = (0,QBrush(QImage(":/Images/001.png")));

in QTreeWidgetItem there is no memeber function called setStyleSheet so how can we fix this issue.

Thanks in advance

Rajesh.Rathod
3rd June 2014, 07:57
Remove your setBackground function call it is not required if you are calling setStyleSheet function on widget.
Try calling setStyleSheet function as I said and it should work.