Aplicar CSS en Combobox


([N1] OscarBarea) #1

Buenos días,
Estoy intentando dar una altura x a los items que tiene el control Combobox, pero no lo consigo (adjunto imagen), quiero que sea mas generoso y tenga una altura de 21px. Ahora quedan todas las lineas muy pegadas.
He probado:
QComboBox::down-arrow {
height: 21px;
}
No se cual es la propiedad que controla los items del Combobox. Lo he mirado en la documentación de Velneo, pero no aparece este comportamiento.
Alguien tiene idea?
Muchas gracias.
Oscar B.



([N4] sat) #2

Hola Oscar:

Hace días pregunté a soporte por la posibilidad de ampliar la altura de las filas de la rejilla y me respondieron que no existía esa posibilidad en Qt, por lo que no estaba disponible.
Me temo que con el comboBox ocurre lo mismo, ya que no “respeta” el espaciado indicado en CSS. Sí lo hace en la cabecera, pero no en los elementos desplegados.

La única opción con la que se puede jugar es con el tamaño de la letra que fuerza en cierto modo la separación de los elementos:

Este estilo genera el efecto que acompaño en la imagen.

QComboBox {
padding: 10px 18px 10px 10px;
border: 1px solid gray;
border-radius: 3px;
min-width: 6em;
font-family: “Franklin Gothic Medium”;
font-size: 22px;
}

Un saludo.



([N3] pacosatu) #3

Hola.

Esto del CSS es otra de las tomaduras de pelo de la conjunción Velneo/QT.

Conseguir un aspecto homogéneo y/o personalizado de nuestras aplicaciones es una tarea imposible, ya que siempre quedarán flecos que pulir en la estilización de la maraña de Widgets, sub-controles, pseudo-estados, propiedades, etc … con la que Velneo nos obliga a torear.

En este caso concreto, la lógica del diseñador de sistemas diría:

  • Quiero estilizar los Items de la zona popup que muestra el combobox cuando se despliega.
  • El Widget principal es QComboBox
  • El Widget popup es QAbstractItemView
  • El Item es el subcontrol ::item

Así que el CSS que añade espacio a los Items del popup del combobox debería ser:
QComboBox QAbstractItemView::item {
padding-top: 4px;
/* margin-top: 4px; */
}

Pues no, esto no funciona, ¿por qué?
Como diría mi madre, ¡cuanta gente y la casa sin barrer!

Saludos
Paco Satué


([N2] ramiro) #4

Buenas tardes:

Si los datos a presentar en el combo son de una tabla estática se pueden separar algo más las opciones poniéndole un icono a todos los items (lo que no se puede gobernar es el incremento en la separación).

El icono puede ser una imagen transparente (sin ningún contenido pero transparente) de tamaño, por ejemplo, 20 x 2 pixeles. La imagen no se verá pero existe y las opciones se separan algo más…

Si es “combo” presenta opciones de una Tabla yo suelo sustituirlo por una una edición alfabética y una rejilla (con subindexador, en su caso) en la que he prefijado de antemano el alto deseado para la línea.

Saludos. Ramiro