¿Es posible establecer el estilo de elemento seleccionado (hoja de estilo Qt) de la lista desplegable QComboBox?Lista desplegable QComboBox - establecer el estilo de elemento seleccionado
Respuesta
Si quiere decir que desea que el elemento seleccionado aparezca diferente cuando el cuadro combinado muestra sus elementos (es decir, en el estado "desplegable"), puede cambiar los colores para resaltar y resaltar texto en la paleta o estilo el interior QAbstractItemView
#include <QtGui>
int main(int argc, char **argv) {
QApplication app(argc, argv);
QComboBox cb;
cb.addItem("Item 1");
cb.addItem("Item 2");
cb.addItem("Item 3");
cb.show();
QPalette p = cb.palette();
p.setColor(QPalette::HighlightedText, QColor(Qt::red));
p.setColor(QPalette::Highlight, QColor(Qt::green));
cb.setPalette(p);
// OR ...
// cb.setStyleSheet("QComboBox QAbstractItemView { "
// "selection-background-color: green; "
// "selection-color: red; }");
return app.exec();
}
Si usted acaba de decir el estilo del elemento en su "colapsado" estado, me gustaría echar un vistazo a la sección "Customizing QComboBox" de la Qt Style Sheets referencia a ejemplos de lo que está Intentando hacer.
La solución es
- crear un objeto ListView
- establezca su hoja de estilo
- lo utilizan como la vista del ComboBox
aquí es cómo:
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QMainWindow * mainWindow = new QMainWindow();
QComboBox * combo = new QComboBox(mainWindow);
QListView * listView = new QListView(combo);
combo->addItem("foo");
combo->addItem("bar");
combo->addItem("foobar");
combo->addItem("fooooo");
listView->setStyleSheet("QListView::item { \
border-bottom: 5px solid white; margin:3px; } \
QListView::item:selected { \
border-bottom: 5px solid black; margin:3px; \
color: black; \
} \
");
combo->setView(listView);
mainWindow->show();
app.exec();
return 0;
}
Observación: Creo que according to the Qt docs aplicar este estilo también debería funcionar ... pero no es así.
QComboBox QAbstractItemView::item {
border-bottom: 5px solid white; margin:3px;
}
QComboBox QAbstractItemView::item:selected {
border-bottom: 5px solid black; margin:3px;
}
¡Gracias! Pero una pregunta más ... ¿Cómo deshacerse del marco de selección delgado? Ver ejemplo: http://vlasovsoft.net/images/1.png –
Se muestra una mejor solución de evento aquí http://stackoverflow.com/questions/13308341/qcombobox-abstractitemviewitem?rq=1 – bkausbk
- 1. Establecer el elemento desplegable seleccionado MVC
- 2. QComboBox - establecer el elemento seleccionado en función de los datos del artículo
- 3. Zend Framework - Establecer valor 'seleccionado' en la selecta lista desplegable
- 4. MVC3 Lista desplegable que no selecciona el elemento seleccionado
- 5. ¿Cómo establecer un elemento de lista desplegable como seleccionado en ASP.NET?
- 6. Android: establecer lista ver el elemento como "seleccionado" (resaltado)
- 7. Cómo establecer el elemento seleccionado DropDownList en el marcado?
- 8. Valor seleccionado de la lista desplegable en el evento Selectedindexchanged
- 9. ¿Cómo configuro el elemento seleccionado en un cuadro desplegable?
- 10. valor seleccionado de la lista desplegable múltiple
- 11. ListBox Estilo Elemento seleccionado en el teléfono de Windows
- 12. Establecer un borde alrededor del elemento seleccionado en el cuadro de lista WPF
- 13. Cómo establecer el valor seleccionado como vacío de lista desplegable a través de jQuery
- 14. PyQt QComboBox establecer el número de elementos visibles en el menú desplegable
- 15. Extjs combobox: ocultar el valor seleccionado de la lista desplegable
- 16. Jquery para obtener el texto seleccionado de la lista desplegable
- 17. El valor seleccionado de la lista desplegable no funciona
- 18. Establecer el elemento seleccionado de ComboBox resaltar color
- 19. predefinir el valor seleccionado en la lista desplegable
- 20. ¿Cómo puedo obtener el VALOR seleccionado de un QCombobox?
- 21. ¿Podemos establecer el estilo del elemento principal del estilo secundario?
- 22. ¿Cómo se puede establecer el elemento seleccionado en un menú desplegable de ASP.NET a través del texto en pantalla?
- 23. plantilla diferente para los elementos de la lista desplegable del cuadro combinado y de elemento seleccionado
- 24. Estilo de elemento seleccionado en ListView en Metro App XAML
- 25. Establecer el título del menú contextual del elemento de vista de lista seleccionado
- 26. ¿Cómo establecer texto predeterminado no seleccionable en QComboBox?
- 27. ASP.Net Html.DropDownList Elemento seleccionado no seleccionado
- 28. Key/Value pyqt QComboBox
- 29. Android barra de acciones spinner elemento seleccionado, subtítulos y lista desplegable
- 30. cómo hacer la devolución de datos al cambiar la lista desplegable elemento seleccionado en mvc4
Thanks for answer! Solo intento cambiar la selección del elemento desplegable de la lista desplegable. No quiero usar el color de fondo para la selección. Quiero usar el borde inferior Logré hacer esto con QMenu: QMenu :: item { borde inferior: 5px blanco sólido; margen: 3px; } QMenu :: item :: selected { borde inferior: 5px negro sólido; margen: 3px; } y quiero hacerlo con el elemento desplegable del cuadro combinado ... –