qt - ¿QListWidget o QListView con QItemDelegate?
(2)
A diferencia de la respuesta de Matt, parece que puedes usar tu propio widget en un QListWidgetItem
, como se señala en esta publicación en qt-project.org: qt-project.org/forums/viewthread/17953 .
Esto podría ser útil si solo tiene algunos elementos para mostrar y no está interesado en la molestia de preparar una clase modelo.
Digamos que necesito mostrar una lista de artículos. Cada elemento contiene un QPushButton, una imagen y un texto. Cuando un usuario hace clic en el botón, debe suceder algo (es decir, necesito obtener la señal). ¿Cuál es la forma correcta de implementar esto en Qt?
Después de leer un poco, entiendo que si uso un QListWidget y QListWidgetItem, esto se puede lograr. Puedo subclasificar cada QListWidgetItem de acuerdo con mis necesidades y establecerlos en el widget de lista.
Sin embargo, también leí que un enfoque más apropiado (el enfoque MOdel View) es utilizar un QlistView junto con un QItemDelegate. Pero si estoy usando QItemDelegate, parece que solo puedo pintar los widgets. ¿Cómo puedo obtener el evento pulsador?
Lo siento por esta enorme publicación. Estoy un poco confundido sobre el concepto completo de cuándo usar un QListWidget / QListView.
QListWidget
es esencialmente una versión personalizada de QListView
, diseñada para casos estándar de widgets de lista, cuando todo lo que está haciendo es presentar elementos de imagen o texto en una lista y la relación con el modelo subyacente es sencilla.
Con QListWidget
y su clase asociada QListWidgetItem
puede, por ejemplo, insertar y eliminar elementos con mucha facilidad. Pero si está insertando QPushButtons
, entonces no puede usar esto, así que podría usar QListView
y sus métodos (heredados) para configurar el widget para un índice determinado.
En cuanto a la señal, ya que va a crear el QPushButton
s, solo use
QObject::connect(my_button, SIGNAL(clicked()),...)
para hacer frente a eso.