Python复选框与删除元素

馋奶兔 提交于 2020-04-03 14:49:53

代码显示!
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_())

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!