Selección múltiple de elementos | Interfaces gráficas usando PyQt5

Posted by

Selección múltiple de ítems | Interfaces gráficas con PyQt5

Selección múltiple de ítems en PyQt5

En la creación de interfaces gráficas con PyQt5, es común la necesidad de implementar la selección múltiple de ítems. Esto permite a los usuarios elegir más de un ítem a la vez, lo que resulta muy útil en diversas aplicaciones.

Cómo implementar la selección múltiple de ítems

Para implementar la selección múltiple de ítems en PyQt5, se puede utilizar el widget QListView junto con el modelo QStandardItemModel. Este modelo permite manejar una lista de ítems en forma de tabla, lo que facilita la selección múltiple.

A continuación se muestra un ejemplo de cómo implementar la selección múltiple de ítems en PyQt5:

“`python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QListView, QStandardItemModel, QStandardItem

class MultipleSelectionExample(QMainWindow):
def __init__(self):
super().__init__()

self.setWindowTitle(‘Selección múltiple de ítems’)
self.setGeometry(100, 100, 400, 300)

model = QStandardItemModel()
model.itemChanged.connect(self.on_item_changed)

for i in range(5):
item = QStandardItem(f’Ítem {i+1}’)
item.setCheckable(True)
model.appendRow(item)

list_view = QListView()
list_view.setModel(model)

self.setCentralWidget(list_view)

def on_item_changed(self, item):
if item.checkState() == 2:
print(item.text() + ‘ seleccionado’)
elif item.checkState() == 0:
print(item.text() + ‘ deseleccionado’)

if __name__ == ‘__main__’:
app = QApplication(sys.argv)
window = MultipleSelectionExample()
window.show()
sys.exit(app.exec_())
“`

En este ejemplo, creamos una ventana con un QListView que muestra una lista de ítems. Se permite la selección múltiple de ítems mediante la propiedad setCheckable(True) y el método checkState() para saber si un ítem está seleccionado o no.

Conclusiones

La selección múltiple de ítems es una funcionalidad importante en interfaces gráficas, ya que permite a los usuarios interactuar de forma más eficiente con las aplicaciones. En PyQt5, implementar esta funcionalidad es sencillo y ofrece muchas posibilidades para mejorar la experiencia de usuario.