from PyQt5.QtWidgets import QWidget, QCheckBox, QApplication,QLabel from PyQt5.QtCore import Qt import sys,sip class Example(QWidget): def __init__(self): super().__init__() self.settings() def settings(self): self.a = QCheckBox('是否更新', self) self.a.move(20, 20) self.a.stateChanged.connect(self.printresult) self.setGeometry(300, 300, 250, 150) self.setWindowTitle('复选框') self.show() def printresult(self): print(self.a.text()) print(self.a.checkState()) if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
简单吧。
先用QCheckBox创建一个复选框。
然后绑定信号。
第一个是打印复选框的内容,就是‘是否更新’。
第二个是打印是否勾上,勾上了就是2,没勾上就是0。
由这个我们可以来判断用户有没有勾。
当然,还有一个方法,就是这样的:
from PyQt5.QtWidgets import QWidget, QCheckBox, QApplication,QLabel from PyQt5.QtCore import Qt import sys,sip class Example(QWidget): def __init__(self): super().__init__() self.settings() def settings(self): self.a = QCheckBox('是否更新', self) self.a.move(20, 20) self.a.toggle() self.a.stateChanged.connect(self.printresult) self.setGeometry(300, 300, 250, 150) self.setWindowTitle('复选框') self.show() def printresult(self): print(self.a.text()) print(self.a.checkState()) if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
这个self.a.toggle就是默认勾上。
那么我们来看个例子,里面还有一个新内容,就是删除元素。我就先说吧。就是pyqt5里的sip库,使用sip.delete来删除元素。del也许也可以,不过我不用,所以不清楚。
from PyQt5.QtWidgets import QWidget, QCheckBox, QApplication,QPushButton from PyQt5.QtCore import Qt import sys,sip class Example(QWidget): def __init__(self): super().__init__() self.settings() def settings(self): self.a = QCheckBox('是否更新', self) self.a.move(20, 20) self.a.stateChanged.connect(self.b) self.yes = QPushButton('我选好了!',self) self.yes.move(50,50) self.yes.clicked.connect(self.printresult) self.setGeometry(300, 300, 250, 150) self.setWindowTitle('复选框') self.show() def b(self): self.number = self.a.checkState() def printresult(self): try: if self.number == 2: print('更新完毕!') sip.delete(self.a) sip.delete(self.yes) if self.number == 0: sip.delete(self.a) sip.delete(self.yes) print('下次更新') except: sip.delete(self.a) sip.delete(self.yes) print('下次更新') if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
————————————————
版权声明:本文为CSDN博主「波斯王」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Persia_king/article/details/105267264