Tengo un QListView, donde se muestran los elementos usando un delegado personalizado con pintura personalizada. Dentro de cada elemento (es decir, cada fila de la lista) quiero poder mostrar un par de "hipervínculos" en los que el usuario podría hacer clic y que llamarían a algunas funciones.Elementos que se pueden hacer clic o widgets infantiles dentro del delegado pintado a mano
Ya he intentado consultar la documentación oficial (por ejemplo, Model/View Programming), así como bastante Google, pero no he podido averiguar cómo lograr esto.
Tengo dos ideas, cada uno con sus propios problemas:
- sabía dibujar usando widgets hijos, como un QPushButton plana. ¿Cómo puedo posicionar y visualizar estos widgets?
- También podría dibujarlos como cadenas de texto. ¿Cómo puedo hacer que puedan hacer clic? ¿O puedo capturar eventos de clic en el QListView padre y de alguna manera determinar las coordenadas de esos? Entonces podría unir las coordenadas a estos elementos seleccionables y actuar en consecuencia.
Mi enfoque inicial era utilizar QListWidget con .setItemWidget(), donde tenía un widget adecuado con un diseño y widgets secundarios. Lamentablemente, esto fue demasiado lento cuando mi lista aumentó a cientos o miles de elementos. Es por eso que cambié a QListView con un delegado.