from PyQt5 import QtWidgets, QtCore # create a list widget and add some items listWidget = QtWidgets.QListWidget() listWidget.addItems(['item 1', 'item 2', 'item 3']) # select the first and third items selection = QtCore.QItemSelection(listWidget.model().index(0,0), listWidget.model().index(0,2)) listWidget.selectionModel().select(selection, QtCore.QItemSelectionModel.Select)
from PyQt5 import QtWidgets, QtCore class MyListWidget(QtWidgets.QListWidget): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) # connect the selection model's selectionChanged signal to a custom method self.selectionModel().selectionChanged.connect(self.onSelectionChanged) def onSelectionChanged(self, selected, deselected): # print the selected items' text to the console for index in selected.indexes(): print(self.itemFromIndex(index).text()) # create a custom list widget listWidget = MyListWidget() listWidget.addItems(['item 1', 'item 2', 'item 3'])
from PyQt5 import QtWidgets, QtCore class MyListWidget(QtWidgets.QListWidget): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) # create a custom selection mode that only allows selecting one item at a time self.setSelectionMode(QtWidgets.QAbstractItemView.SingleSelection) # create a custom list widget with customized selection behavior listWidget = MyListWidget() listWidget.addItems(['item 1', 'item 2', 'item 3'])In this example, we create a custom `QListWidget` subclass that sets the selection mode to `SingleSelection`. This means that only one item can be selected at a time. Other selection modes include `NoSelection`, `MultiSelection`, and `ExtendedSelection`. Overall, these examples demonstrate how QItemSelection can be used in PyQt5 to provide advanced selection capabilities in view widgets.