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 の場合、必要なことを行うことができます。アイコンを作成し、通常の状態と選択された状態の両方に同じピックスマップを追加するだけです。次に、アイテムにアイコンを設定します

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 に答える