[PyQt] choose checkbox - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: GUI (https://python-forum.io/forum-10.html) +--- Thread: [PyQt] choose checkbox (/thread-39434.html) |
choose checkbox - devilonline - Feb-16-2023 Hi, I have this code with pyqt5: elif (content1 == "next"): todos = ["one" , "two" , "three" , "four", "five"] self.todo_listWidget.show() for todo in todos: item = QListWidgetItem(todo) item.setFlags(item.flags() | QtCore.Qt.ItemIsUserCheckable) item.setCheckState(QtCore.Qt.Unchecked) self.todo_listWidget.addItem(item)And I want if i chose one item make something like if item (x) is checked then do something how can i do this? RE: choose checkbox - Axel_Erfurt - Feb-17-2023 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_()) |