如何更改Qt qListView图标选择高亮显示

时间:2011-02-18 17:22:58

标签: qt icons highlighting selected qlistview

在图标模式下使用qlistview时,我需要在选择图标时完全删除hilighting。 使用下面的代码不再突出显示图标下方的文字,但选中后仍然会在图标上显示蓝色

 QString stylesheet = "";
   stylesheet += "QListView::item:alternate {background-image: transparent; background-color: transparent;}";
   stylesheet += "QListView::item:selected {background-image: transparent; background-color: transparent;padding: 0px;color: black;}";
   stylesheet += "QListView::item:selected:active{background-image: transparent;background-color: transparent; color: black;}";
   stylesheet += "QListView::item:selected:!active{background-image: transparent;background-color: transparent;color: black;}";
   setStyleSheet(stylesheet);

有没有人知道如何在图标上更改所选颜色而无需继承QStandardItem?

2 个答案:

答案 0 :(得分:6)

对于带有QStandardItem的QListView,它可以做你想要的。只需创建一个图标,为正常状态和选定状态添加相同的像素图。然后在项目

中设置setIcon
QIcon icon;

icon.addPixmap(yourPixmap,QIcon::Normal);
icon.addPixmap(yourPixmap,QIcon::Selected);

qstandardItem.setIcon(icon);

答案 1 :(得分:0)

找到我自己的答案。如果不使用委托,则无法删除QListview中的剖面颜色叠加,但切换到使用QListWidget后,我可以通过设置选定的图标图像来禁用选择叠加层