2011-02-18 4 views
6

아이콘 모드에서 qlistview를 사용할 때 아이콘을 선택했을 때 나는 완전히 hilighting을 제거해야합니다. 아이콘 아래에있는 텍스트 아래의 코드를 사용하여 은 더 이상 강조하지 않고Qt를 변경하는 방법 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를 서브 클래 싱 할 필요없이 아이콘 위에 선택한 색상을 변경하는 방법을 알고 있나요?

+0

Qt의 버전은 무엇입니까? 나는 4.7.1을 실행 중이고 스타일 시트가 없어도 아이콘이 전혀 강조 표시되지 않는다. – Liz

답변

0

내 대답을 찾았습니다. 델리게이트를 사용하지 않고 QListview에서 섹션 색상 오버레이를 제거 할 수 없지만 QListWidget을 사용하기 위해 전환 한 후 선택한 아이콘 이미지를 설정하여 선택 오버레이를 비활성화 할 수 있습니다.

6

QStandardItem을 사용하여 QListView의 경우 원하는 작업을 수행 할 수 있습니다. 간단히 아이콘을 만들고 일반 및 선택된 상태 모두에 동일한 pixmap을 추가하십시오. 그런 다음 항목에 setIcon 설정

QIcon icon; 

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

qstandardItem.setIcon(icon); 
관련 문제