Feb-17-2023, 01:23 PM
Getting signals from QListWidgetItem is difficult, QCheckbox is easier
from PyQt5.QtWidgets import (QMainWindow, QApplication, QVBoxLayout, QWidget, QCheckBox) from PyQt5.QtCore import Qt class mainWin(QMainWindow): def __init__(self, parent = None): super(mainWin, self).__init__(parent) self.setupUI() def setupUI(self): self.setGeometry(0, 0, 800, 600) central_widget = QWidget() vbox = QVBoxLayout() todos = ["one" , "two" , "three" , "four", "five"] self.todo_listWidget = QVBoxLayout() for todo in todos: item = QCheckBox(text = todo) item.setCheckState(Qt.Unchecked) item.stateChanged.connect(self.test) self.todo_listWidget.addWidget(item) vbox.addLayout(self.todo_listWidget) vbox.addWidget(QWidget()) central_widget.setLayout(vbox) self.setCentralWidget(central_widget) def test(self): action = self.sender() if action: state = action.checkState() name = action.text() print(f"{name} state: {state}") if __name__ == '__main__': import sys app = QApplication(sys.argv) win = mainWin() win.setWindowTitle("Main Window") win.show() sys.exit(app.exec_())