8

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

 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?

4

2 回答 2

10

对于带有 QStandardItem 的 QListView,可以做你想做的事。只需创建一个图标并为正常状态和选定状态添加相同的像素图。然后在item中设置图标

QIcon icon;

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

qstandardItem.setIcon(icon);
于 2012-05-10T13:53:52.890 回答
0

找到了我自己的答案。在不使用委托的情况下无法删除 QListview 中的部分颜色覆盖,但在切换到使用 QListWidget 后,我​​可以通过设置选定的图标图像来禁用选择覆盖

于 2011-02-20T05:51:44.897 回答