c++ - combobox qt example
¿Cómo cambiar el tamaño de QScrollBar de QComboBox? (2)
Estoy usando un QComboBox con algunos elementos hasta el punto de que, cuando aparece el widget que muestra todos los elementos disponibles en el QComboBox, solo algunos de los elementos son visibles y el otro accesible a través de un QScrollBar.
El problema es que QScrollBar es delgada y quiero agrandarla. Hice algunas investigaciones en la web y encontré algunas formas de cambiar el ancho de QScrollBar (ver referencias a continuación), pero el problema es que simplemente no puedo encontrar el método para acceder al QScrollBar de QComboBox.
Entonces, dado este problema, ¿cómo puedo hacer este cambio? (Supongo que puede presentarme de una manera que no requiera que acceda al QScrollBar o mostrar cómo puedo acceder a él).
Referencias
- ancho de la barra de desplazamiento vertical - Acceso directo y estilo
- ¿Cómo obtener la barra de desplazamiento de ancho real en Qt? - Nuevamente por pixlMetric (solo acceso)
- Cómo aumentar el ancho de la barra de desplazamiento vertical QTableWidget? - Usar la hoja de estilo (un método preferible si hay una manera de hacer que se aplique a todos los QScrollBars disponibles en el proyecto)
- Otras opciones se discuten aquí
Obtener el
QAbstractItemView
la combobox mediante view ()Esa clase hereda de
QAbstractScrollArea
, por lo tanto, hereda el método verticalScrollBar
p.ej
QAbstractItemView *qv = combobox.view();
QScrollBar *scrollbar = qv->verticalScrollBar();
// Adjust size via setStyleSheet or hint/width
La barra de desplazamiento no es un miembro de la clase QComboBox, es un miembro del QAbstractItemView subyacente. Pruebe algo como lo siguiente (pseudo-código):
QListView* abby = new QListView();
QWidgetList list = abby->scrollBarWidgets(Qt::AlignRight);
for (auto itr = list.begin(); itr != list.end(); itr++)
{
(*itr)->setMinimumWidth(100);
}
QComboBox combo;
combo.setView(abby);
El scrollbarwidgets devuelve una lista de widgets de las barras de desplazamiento para esa alineación. Luego puede establecer las propiedades en los punteros de la barra de desplazamiento.