2011-02-18 19 views
6

Al usar qlistview en el modo de icono, necesito eliminar completamente hilighting cuando se selecciona un icono. Utilizando el código a continuación el texto bajo el icono ya no está resaltado pero aún así obtener el color azul sobre el icono cuando se seleccionacómo cambiar Qt qListView selección de icono resaltar

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); 

¿alguien sabe cómo cambiar el color seleccionado sobre el icono sin tener que subclase QStandardItem?

+0

¿Qué versión de Qt estás utilizando? Estoy ejecutando 4.7.1 y nunca veo el icono resaltado en absoluto, incluso sin su hoja de estilos. – Liz

Respuesta

0

Encontré mi propia respuesta. no se pudo eliminar la superposición de color de sección en QListview sin usar delegar, pero después de cambiar para usar QListWidget pude desactivar la superposición de selección configurando una imagen de icono seleccionada

6

Para un QListView con QStandardItem es posible hacer lo que desee. Simplemente cree un icono y agregue el mismo mapa de bits para los estados normal y seleccionado. A continuación, setIcon en el elemento

QIcon icon; 

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

qstandardItem.setIcon(icon); 
Cuestiones relacionadas