Qt / C ++: Señal para cuando un QListWidgetItem se comprueba?
-
27-09-2019 - |
Pregunta
En mi forma tengo un QListWidget
que contiene QListWidgetItems
comprobable. Estoy buscando una manera de capturar el evento de un QListWidgetItem
ser controlada / sin marcar. No veo cualquier señal existente para esto, pero tal vez me equivoque. Lo que estoy haciendo actualmente está utilizando la señal QListWidget::itemClicked()
y comprobando el checkState
del QListWidgetItem
, pero esto no es lo que quiero porque este evento ocurre cada vez que se hace clic en el elemento, no sólo fuimos se puede cambiar entre la marca de verificación. ¿Puede alguien dar un poco de ayuda? Gracias!
Solución
Al parecer, no se proporciona dicha señal, la mejor opción es utilizar QListWidget::itemChanged(QListWidgetItem* item)
, y escanear el resultado item->checkState()
. Esto debería ser una ligera mejora sobre el uso de itemClicked
Otros consejos
Una opción adicional es utilizar su propia QAbstractListModel
con un QListView
. Al principio esto se le añade un poco de código adicional que necesite para añadir su propio código de gestión. Pero te dan un acceso de nivel inferior. Básicamente porque el QListView
le pedirá a su modelo de lo que debe hacer. También va a transmitir de vuelta a su entrada ListModel donde se puede enganchar en él.
Alternativamente, usted podría subclase QStandardItemModel
y coger ciertas modificaciones relacionadas con el cambio de la casilla de verificación.