python中gui的单选框和复选框(131.PythonPyQt5:单选按钮和复选框的使用)
python中gui的单选框和复选框(131.PythonPyQt5:单选按钮和复选框的使用)import sys from PyQt5 import QtCore QtGui QtWidgets from Ui_rbtchk import Ui_MainWindow class MainWindow(QtWidgets.QMainWindow Ui_MainWindow): def __init__(self): super().__init__() self.setupUi(self) #选中的文本放入列表 self.txtlst=[] #设置文本框的字体大小 self.textEdit.setFontPointSize(16) #遍历所有的单选按钮 设置单选按钮的槽函数 # for child in
在PyQt5按钮中除了常用按钮(Push Button,还有单选按钮(Radio Button)、复选框(Check Box),也是经常用到的组件。
本文通过简单的实例来演示一下如何使用这两个组件。
一、界面设计(Qt Designer)这里注意:单选按钮通过group box 分成两组,一组:深度学习框架,另一组:编程语言,人工智能应用领域为复选框。文本框用来显示单选和多选的情况。
界面
二、实现代码:import sys
from PyQt5 import QtCore QtGui QtWidgets
from Ui_rbtchk import Ui_MainWindow
class MainWindow(QtWidgets.QMainWindow Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
#选中的文本放入列表
self.txtlst=[]
#设置文本框的字体大小
self.textEdit.setFontPointSize(16)
#遍历所有的单选按钮 设置单选按钮的槽函数
# for child in self.findChildren(QtWidgets.QRadioButton):
# #print(child.objectName())
# child.toggled.connect(lambda:self.rbt_toggled(child))
self.rbt1.toggled.connect(lambda:self.rbt_toggled(self.rbt1))
self.rbt2.toggled.connect(lambda:self.rbt_toggled(self.rbt2))
self.rbt3.toggled.connect(lambda:self.rbt_toggled(self.rbt3))
self.rbt4.toggled.connect(lambda:self.rbt_toggled(self.rbt4))
self.rbt5.toggled.connect(lambda:self.rbt_toggled(self.rbt5))
self.rbt6.toggled.connect(lambda:self.rbt_toggled(self.rbt6))
#check box槽函数
self.chk1.StateChanged.connect(lambda:self.chk_state(self.chk1))
self.chk2.stateChanged.connect(lambda:self.chk_state(self.chk2))
self.chk3.stateChanged.connect(lambda:self.chk_state(self.chk3))
#radio button槽函数
def rbt_toggled(self radioButton):
rbttxt=radioButton.text() #获取选中的文本
#print(rbttxt radioButton.isChecked())
if radioButton.isChecked():
if rbttxt not in self.txtlst:
self.txtlst.append(rbttxt)
else:
if rbttxt in self.txtlst:
self.txtlst.remove(rbttxt)
#print(self.txtlst)
self.textEdit.setText(str(self.txtlst))
#check box槽函数
def chk_state(self checkBox):
#判断是否选中
chktxt=checkBox.text() #获取选中的文本
#print(checkBox.text() checkBox.isChecked() checkBox.checkState())
if checkBox.isChecked():
if chktxt not in self.txtlst:
self.txtlst.append(chktxt)
if checkBox.isChecked()==False:
if chktxt in self.txtlst:
self.txtlst.remove(chktxt)
#print(self.txtlst)
self.textEdit.setText(str(self.txtlst))
if __name__ == '__main__':
app=QtWidgets.QApplication(sys.argv)
mywin=MainWindow()
mywin.setWindowTitle('RadioButton and CheckBox')
mywin.show()
sys.exit(app.exec_())
三、运行效果
四、视频讲解