[{"data":1,"prerenderedAt":2854},["ShallowReactive",2],{"post-2025-08-24-pyqt5":3},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"date":10,"tags":11,"body":15,"_type":2848,"_id":2849,"_source":2850,"_file":2851,"_stem":2852,"_extension":2853},"\u002Fblog\u002F2025-08-24-pyqt5","blog",false,"","PyQt5-按钮类控件","PyQt5按钮类控件详解：PushButton、RadioButton、CheckBox、ToolButton等。","2025-08-24",[12,13,14],"Python","PyQt5","GUI",{"type":16,"children":17,"toc":2836},"root",[18,57,71,75,100,118,230,248,256,291,843,894,913,922,984,989,1000,1013,1016,1042,1081,1141,1160,1218,1226,1238,1261,1266,1274,1337,1342,1352,1365,1368,1393,1401,1429,1442,1450,1465,1473,1487,1490,1500,1516,1592,1637,1645,1716,2307,2334,2342,2360,2368,2382,2385,2402,2451,2461,2525,2543,2551,2615,2742,2770,2784,2803,2811,2830],{"type":19,"tag":20,"props":21,"children":22},"element","p",{},[23,26,33,35,41,42,48,49,55],{"type":24,"value":25},"text","按钮类控件主要用来执行一些命令操作，PyQt5中的按钮类控件主要有",{"type":19,"tag":27,"props":28,"children":30},"code",{"className":29},[],[31],{"type":24,"value":32},"PushButton",{"type":24,"value":34},"、",{"type":19,"tag":27,"props":36,"children":38},{"className":37},[],[39],{"type":24,"value":40},"ToolButton",{"type":24,"value":34},{"type":19,"tag":27,"props":43,"children":45},{"className":44},[],[46],{"type":24,"value":47},"CommandLinkButton",{"type":24,"value":34},{"type":19,"tag":27,"props":50,"children":52},{"className":51},[],[53],{"type":24,"value":54},"RadioButton和CheckBox",{"type":24,"value":56},"等，本节将对它们的常用方法及使用方式进行讲解。",{"type":19,"tag":58,"props":59,"children":61},"h2",{"id":60},"_1pushbutton按钮",[62,64,69],{"type":24,"value":63},"1  ",{"type":19,"tag":27,"props":65,"children":67},{"className":66},[],[68],{"type":24,"value":32},{"type":24,"value":70},"：按钮",{"type":19,"tag":72,"props":73,"children":74},"hr",{},[],{"type":19,"tag":20,"props":76,"children":77},{},[78,83,85,90,92,98],{"type":19,"tag":27,"props":79,"children":81},{"className":80},[],[82],{"type":24,"value":32},{"type":24,"value":84},"是PyQt5中最常用的控件之一，它被称为按钮控件，允许用户通过单击来执行操作。",{"type":19,"tag":27,"props":86,"children":88},{"className":87},[],[89],{"type":24,"value":32},{"type":24,"value":91},"控件",{"type":19,"tag":93,"props":94,"children":95},"strong",{},[96],{"type":24,"value":97},"既可以显示文本，也可以显示图像",{"type":24,"value":99},"。当该控件被单击时，它看起来的状态像是被按下，然后被释放。",{"type":19,"tag":20,"props":101,"children":102},{},[103,108,110,116],{"type":19,"tag":27,"props":104,"children":106},{"className":105},[],[107],{"type":24,"value":32},{"type":24,"value":109},"控件对应PyQt5中的",{"type":19,"tag":27,"props":111,"children":113},{"className":112},[],[114],{"type":24,"value":115},"QPushButton",{"type":24,"value":117},"类，该类的常用方法及说明如表所示。",{"type":19,"tag":119,"props":120,"children":121},"table",{},[122,147],{"type":19,"tag":123,"props":124,"children":125},"thead",{},[126],{"type":19,"tag":127,"props":128,"children":129},"tr",{},[130,139],{"type":19,"tag":131,"props":132,"children":133},"th",{},[134],{"type":19,"tag":93,"props":135,"children":136},{},[137],{"type":24,"value":138},"方    法",{"type":19,"tag":131,"props":140,"children":141},{},[142],{"type":19,"tag":93,"props":143,"children":144},{},[145],{"type":24,"value":146},"说    明",{"type":19,"tag":148,"props":149,"children":150},"tbody",{},[151,165,178,191,204,217],{"type":19,"tag":127,"props":152,"children":153},{},[154,160],{"type":19,"tag":155,"props":156,"children":157},"td",{},[158],{"type":24,"value":159},"setText()",{"type":19,"tag":155,"props":161,"children":162},{},[163],{"type":24,"value":164},"设置按钮所显示的文本",{"type":19,"tag":127,"props":166,"children":167},{},[168,173],{"type":19,"tag":155,"props":169,"children":170},{},[171],{"type":24,"value":172},"text()",{"type":19,"tag":155,"props":174,"children":175},{},[176],{"type":24,"value":177},"获取按钮所显示的文本",{"type":19,"tag":127,"props":179,"children":180},{},[181,186],{"type":19,"tag":155,"props":182,"children":183},{},[184],{"type":24,"value":185},"setIcon()",{"type":19,"tag":155,"props":187,"children":188},{},[189],{"type":24,"value":190},"设置按钮上的图标，可以将参数设置为QtGui.QIcon('图标路径')",{"type":19,"tag":127,"props":192,"children":193},{},[194,199],{"type":19,"tag":155,"props":195,"children":196},{},[197],{"type":24,"value":198},"setIconSize()",{"type":19,"tag":155,"props":200,"children":201},{},[202],{"type":24,"value":203},"设置按钮图标的大小，参数可以设置为QtCore.QSize(int width，int height)",{"type":19,"tag":127,"props":205,"children":206},{},[207,212],{"type":19,"tag":155,"props":208,"children":209},{},[210],{"type":24,"value":211},"setEnabled()",{"type":19,"tag":155,"props":213,"children":214},{},[215],{"type":24,"value":216},"设置按钮是否可用，参数设置为False时，按钮为不可用状态",{"type":19,"tag":127,"props":218,"children":219},{},[220,225],{"type":19,"tag":155,"props":221,"children":222},{},[223],{"type":24,"value":224},"setShortcut()",{"type":19,"tag":155,"props":226,"children":227},{},[228],{"type":24,"value":229},"设置按钮的快捷键，参数可以设置为键盘中的按键或组合键例如\u003CAlt+0>",{"type":19,"tag":20,"props":231,"children":232},{},[233,238,240,246],{"type":19,"tag":27,"props":234,"children":236},{"className":235},[],[237],{"type":24,"value":32},{"type":24,"value":239},"按钮中最常用的信号是",{"type":19,"tag":27,"props":241,"children":243},{"className":242},[],[244],{"type":24,"value":245},"clicked",{"type":24,"value":247},"，当按钮被单击时，会发射该信号执行相应的操作。",{"type":19,"tag":20,"props":249,"children":250},{},[251],{"type":19,"tag":93,"props":252,"children":253},{},[254],{"type":24,"value":255},"实例 制作登录窗口",{"type":19,"tag":20,"props":257,"children":258},{},[259,261,267,269,275,277,282,284,289],{"type":24,"value":260},"为系统登录窗口添加",{"type":19,"tag":27,"props":262,"children":264},{"className":263},[],[265],{"type":24,"value":266},"登录",{"type":24,"value":268},"和",{"type":19,"tag":27,"props":270,"children":272},{"className":271},[],[273],{"type":24,"value":274},"退出",{"type":24,"value":276},"按钮，当单击",{"type":19,"tag":27,"props":278,"children":280},{"className":279},[],[281],{"type":24,"value":266},{"type":24,"value":283},"按钮时，弹出用户输入的用户名和密码；而当单击",{"type":19,"tag":27,"props":285,"children":287},{"className":286},[],[288],{"type":24,"value":274},{"type":24,"value":290},"按钮时，则关闭当前登录窗口。代码如下：",{"type":19,"tag":292,"props":293,"children":297},"pre",{"code":294,"language":295,"meta":7,"className":296,"style":7},"from PyQt5 import QtCore, QtGui, QtWidgets  \nfrom PyQt5.QtGui import QPixmap, QIcon  \n  \nclass Ui_MainWindow(object):  \n    def setupUi(self, MainWindow):  \n        MainWindow.setObjectName(\"MainWindow\")  \n        MainWindow.resize(225, 121)  \n        self.centralwidget = QtWidgets.QWidget(MainWindow)  \n        self.centralwidget.setObjectName(\"centralwidget\")  \n        self.pushButton = QtWidgets.QPushButton(self.centralwidget)  \n        self.pushButton.setGeometry(QtCore.QRect(40, 83, 61, 23))  \n        self.pushButton.setObjectName(\"pushButton\")  \n        self.pushButton.setIcon(QIcon(QPixmap(\"login.ico\")))  # 为“登录”按钮设置图标  \n        self.label = QtWidgets.QLabel(self.centralwidget)  \n        self.label.setGeometry(QtCore.QRect(29, 22, 54, 12))  \n        self.label.setObjectName(\"label\")  \n        self.label_2 = QtWidgets.QLabel(self.centralwidget)  \n        self.label_2.setGeometry(QtCore.QRect(29, 52, 54, 12))  \n        self.label_2.setObjectName(\"label_2\")  \n        self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)  \n        self.lineEdit.setGeometry(QtCore.QRect(79, 18, 113, 20))  \n        self.lineEdit.setObjectName(\"lineEdit\")  \n        self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)  \n        self.lineEdit_2.setGeometry(QtCore.QRect(78, 50, 113, 20))  \n        self.lineEdit_2.setObjectName(\"lineEdit_2\")  \n        self.lineEdit_2.setEchoMode(QtWidgets.QLineEdit.Password)  # 设置文本框为密码  \n        # 设置只能输入8位数字  \n        self.lineEdit_2.setValidator(QtGui.QIntValidator(10000000, 99999999))  \n        self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)  \n        self.pushButton_2.setGeometry(QtCore.QRect(120, 83, 61, 23))  \n        self.pushButton_2.setObjectName(\"pushButton_2\")  \n        self.pushButton_2.setIcon(QIcon(QPixmap(\"exit.ico\")))  # 为“退出”按钮设置图标  \n        MainWindow.setCentralWidget(self.centralwidget)  \n        self.retranslateUi(MainWindow)  \n        # 为“登录”按钮的clicked信号绑定自定义槽函数  \n        self.pushButton.clicked.connect(self.login)  \n        # 为“退出”按钮的clicked信号绑定MainWindow窗口自带的close()槽函数  \n        self.pushButton_2.clicked.connect(MainWindow.close)  \n        QtCore.QMetaObject.connectSlotsByName(MainWindow)  \n    def login(self):  \n        from PyQt5.QtWidgets import QMessageBox  \n        # 使用information()方法弹出信息提示框  \n        QMessageBox.information(MainWindow, \"登录信息\",  \n                                \"用户名：\" + self.lineEdit.text() + \"  密码：\" + self.lineEdit_2.text(), QMessageBox.Ok)  \n    def retranslateUi(self, MainWindow):  \n        _translate = QtCore.QCoreApplication.translate  \n        MainWindow.setWindowTitle(_translate(\"MainWindow\", \"系统登录\"))  \n        self.pushButton.setText(_translate(\"MainWindow\", \"登录\"))  \n        self.label.setText(_translate(\"MainWindow\", \"用户名：\"))  \n        self.label_2.setText(_translate(\"MainWindow\", \"密  码：\"))  \n        self.pushButton_2.setText(_translate(\"MainWindow\", \"退出\"))  \nimport sys  \n# 程序入口，程序从此处启动PyQt设计的窗体  \nif __name__ == '__main__':  \n    app = QtWidgets.QApplication(sys.argv)  \n    MainWindow = QtWidgets.QMainWindow()  # 创建窗体对象  \n    ui = Ui_MainWindow()  # 创建PyQt设计的窗体对象  \n    ui.setupUi(MainWindow)  # 调用PyQt窗体的方法对窗体对象进行初始化设置  \n    MainWindow.show()  # 显示窗体  \n    sys.exit(app.exec_())  # 程序关闭时退出进程\n","python","language-python shiki shiki-themes github-dark",[298],{"type":19,"tag":27,"props":299,"children":300},{"__ignoreMap":7},[301,312,321,330,339,348,357,366,375,384,393,402,411,420,429,438,447,456,465,474,483,492,501,510,519,528,537,546,555,564,573,582,591,600,609,618,627,636,645,654,663,672,681,690,699,708,717,726,735,744,753,762,771,780,789,798,807,816,825,834],{"type":19,"tag":302,"props":303,"children":306},"span",{"class":304,"line":305},"line",1,[307],{"type":19,"tag":302,"props":308,"children":309},{},[310],{"type":24,"value":311},"from PyQt5 import QtCore, QtGui, QtWidgets  \n",{"type":19,"tag":302,"props":313,"children":315},{"class":304,"line":314},2,[316],{"type":19,"tag":302,"props":317,"children":318},{},[319],{"type":24,"value":320},"from PyQt5.QtGui import QPixmap, QIcon  \n",{"type":19,"tag":302,"props":322,"children":324},{"class":304,"line":323},3,[325],{"type":19,"tag":302,"props":326,"children":327},{},[328],{"type":24,"value":329},"  \n",{"type":19,"tag":302,"props":331,"children":333},{"class":304,"line":332},4,[334],{"type":19,"tag":302,"props":335,"children":336},{},[337],{"type":24,"value":338},"class Ui_MainWindow(object):  \n",{"type":19,"tag":302,"props":340,"children":342},{"class":304,"line":341},5,[343],{"type":19,"tag":302,"props":344,"children":345},{},[346],{"type":24,"value":347},"    def setupUi(self, MainWindow):  \n",{"type":19,"tag":302,"props":349,"children":351},{"class":304,"line":350},6,[352],{"type":19,"tag":302,"props":353,"children":354},{},[355],{"type":24,"value":356},"        MainWindow.setObjectName(\"MainWindow\")  \n",{"type":19,"tag":302,"props":358,"children":360},{"class":304,"line":359},7,[361],{"type":19,"tag":302,"props":362,"children":363},{},[364],{"type":24,"value":365},"        MainWindow.resize(225, 121)  \n",{"type":19,"tag":302,"props":367,"children":369},{"class":304,"line":368},8,[370],{"type":19,"tag":302,"props":371,"children":372},{},[373],{"type":24,"value":374},"        self.centralwidget = QtWidgets.QWidget(MainWindow)  \n",{"type":19,"tag":302,"props":376,"children":378},{"class":304,"line":377},9,[379],{"type":19,"tag":302,"props":380,"children":381},{},[382],{"type":24,"value":383},"        self.centralwidget.setObjectName(\"centralwidget\")  \n",{"type":19,"tag":302,"props":385,"children":387},{"class":304,"line":386},10,[388],{"type":19,"tag":302,"props":389,"children":390},{},[391],{"type":24,"value":392},"        self.pushButton = QtWidgets.QPushButton(self.centralwidget)  \n",{"type":19,"tag":302,"props":394,"children":396},{"class":304,"line":395},11,[397],{"type":19,"tag":302,"props":398,"children":399},{},[400],{"type":24,"value":401},"        self.pushButton.setGeometry(QtCore.QRect(40, 83, 61, 23))  \n",{"type":19,"tag":302,"props":403,"children":405},{"class":304,"line":404},12,[406],{"type":19,"tag":302,"props":407,"children":408},{},[409],{"type":24,"value":410},"        self.pushButton.setObjectName(\"pushButton\")  \n",{"type":19,"tag":302,"props":412,"children":414},{"class":304,"line":413},13,[415],{"type":19,"tag":302,"props":416,"children":417},{},[418],{"type":24,"value":419},"        self.pushButton.setIcon(QIcon(QPixmap(\"login.ico\")))  # 为“登录”按钮设置图标  \n",{"type":19,"tag":302,"props":421,"children":423},{"class":304,"line":422},14,[424],{"type":19,"tag":302,"props":425,"children":426},{},[427],{"type":24,"value":428},"        self.label = QtWidgets.QLabel(self.centralwidget)  \n",{"type":19,"tag":302,"props":430,"children":432},{"class":304,"line":431},15,[433],{"type":19,"tag":302,"props":434,"children":435},{},[436],{"type":24,"value":437},"        self.label.setGeometry(QtCore.QRect(29, 22, 54, 12))  \n",{"type":19,"tag":302,"props":439,"children":441},{"class":304,"line":440},16,[442],{"type":19,"tag":302,"props":443,"children":444},{},[445],{"type":24,"value":446},"        self.label.setObjectName(\"label\")  \n",{"type":19,"tag":302,"props":448,"children":450},{"class":304,"line":449},17,[451],{"type":19,"tag":302,"props":452,"children":453},{},[454],{"type":24,"value":455},"        self.label_2 = QtWidgets.QLabel(self.centralwidget)  \n",{"type":19,"tag":302,"props":457,"children":459},{"class":304,"line":458},18,[460],{"type":19,"tag":302,"props":461,"children":462},{},[463],{"type":24,"value":464},"        self.label_2.setGeometry(QtCore.QRect(29, 52, 54, 12))  \n",{"type":19,"tag":302,"props":466,"children":468},{"class":304,"line":467},19,[469],{"type":19,"tag":302,"props":470,"children":471},{},[472],{"type":24,"value":473},"        self.label_2.setObjectName(\"label_2\")  \n",{"type":19,"tag":302,"props":475,"children":477},{"class":304,"line":476},20,[478],{"type":19,"tag":302,"props":479,"children":480},{},[481],{"type":24,"value":482},"        self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)  \n",{"type":19,"tag":302,"props":484,"children":486},{"class":304,"line":485},21,[487],{"type":19,"tag":302,"props":488,"children":489},{},[490],{"type":24,"value":491},"        self.lineEdit.setGeometry(QtCore.QRect(79, 18, 113, 20))  \n",{"type":19,"tag":302,"props":493,"children":495},{"class":304,"line":494},22,[496],{"type":19,"tag":302,"props":497,"children":498},{},[499],{"type":24,"value":500},"        self.lineEdit.setObjectName(\"lineEdit\")  \n",{"type":19,"tag":302,"props":502,"children":504},{"class":304,"line":503},23,[505],{"type":19,"tag":302,"props":506,"children":507},{},[508],{"type":24,"value":509},"        self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)  \n",{"type":19,"tag":302,"props":511,"children":513},{"class":304,"line":512},24,[514],{"type":19,"tag":302,"props":515,"children":516},{},[517],{"type":24,"value":518},"        self.lineEdit_2.setGeometry(QtCore.QRect(78, 50, 113, 20))  \n",{"type":19,"tag":302,"props":520,"children":522},{"class":304,"line":521},25,[523],{"type":19,"tag":302,"props":524,"children":525},{},[526],{"type":24,"value":527},"        self.lineEdit_2.setObjectName(\"lineEdit_2\")  \n",{"type":19,"tag":302,"props":529,"children":531},{"class":304,"line":530},26,[532],{"type":19,"tag":302,"props":533,"children":534},{},[535],{"type":24,"value":536},"        self.lineEdit_2.setEchoMode(QtWidgets.QLineEdit.Password)  # 设置文本框为密码  \n",{"type":19,"tag":302,"props":538,"children":540},{"class":304,"line":539},27,[541],{"type":19,"tag":302,"props":542,"children":543},{},[544],{"type":24,"value":545},"        # 设置只能输入8位数字  \n",{"type":19,"tag":302,"props":547,"children":549},{"class":304,"line":548},28,[550],{"type":19,"tag":302,"props":551,"children":552},{},[553],{"type":24,"value":554},"        self.lineEdit_2.setValidator(QtGui.QIntValidator(10000000, 99999999))  \n",{"type":19,"tag":302,"props":556,"children":558},{"class":304,"line":557},29,[559],{"type":19,"tag":302,"props":560,"children":561},{},[562],{"type":24,"value":563},"        self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)  \n",{"type":19,"tag":302,"props":565,"children":567},{"class":304,"line":566},30,[568],{"type":19,"tag":302,"props":569,"children":570},{},[571],{"type":24,"value":572},"        self.pushButton_2.setGeometry(QtCore.QRect(120, 83, 61, 23))  \n",{"type":19,"tag":302,"props":574,"children":576},{"class":304,"line":575},31,[577],{"type":19,"tag":302,"props":578,"children":579},{},[580],{"type":24,"value":581},"        self.pushButton_2.setObjectName(\"pushButton_2\")  \n",{"type":19,"tag":302,"props":583,"children":585},{"class":304,"line":584},32,[586],{"type":19,"tag":302,"props":587,"children":588},{},[589],{"type":24,"value":590},"        self.pushButton_2.setIcon(QIcon(QPixmap(\"exit.ico\")))  # 为“退出”按钮设置图标  \n",{"type":19,"tag":302,"props":592,"children":594},{"class":304,"line":593},33,[595],{"type":19,"tag":302,"props":596,"children":597},{},[598],{"type":24,"value":599},"        MainWindow.setCentralWidget(self.centralwidget)  \n",{"type":19,"tag":302,"props":601,"children":603},{"class":304,"line":602},34,[604],{"type":19,"tag":302,"props":605,"children":606},{},[607],{"type":24,"value":608},"        self.retranslateUi(MainWindow)  \n",{"type":19,"tag":302,"props":610,"children":612},{"class":304,"line":611},35,[613],{"type":19,"tag":302,"props":614,"children":615},{},[616],{"type":24,"value":617},"        # 为“登录”按钮的clicked信号绑定自定义槽函数  \n",{"type":19,"tag":302,"props":619,"children":621},{"class":304,"line":620},36,[622],{"type":19,"tag":302,"props":623,"children":624},{},[625],{"type":24,"value":626},"        self.pushButton.clicked.connect(self.login)  \n",{"type":19,"tag":302,"props":628,"children":630},{"class":304,"line":629},37,[631],{"type":19,"tag":302,"props":632,"children":633},{},[634],{"type":24,"value":635},"        # 为“退出”按钮的clicked信号绑定MainWindow窗口自带的close()槽函数  \n",{"type":19,"tag":302,"props":637,"children":639},{"class":304,"line":638},38,[640],{"type":19,"tag":302,"props":641,"children":642},{},[643],{"type":24,"value":644},"        self.pushButton_2.clicked.connect(MainWindow.close)  \n",{"type":19,"tag":302,"props":646,"children":648},{"class":304,"line":647},39,[649],{"type":19,"tag":302,"props":650,"children":651},{},[652],{"type":24,"value":653},"        QtCore.QMetaObject.connectSlotsByName(MainWindow)  \n",{"type":19,"tag":302,"props":655,"children":657},{"class":304,"line":656},40,[658],{"type":19,"tag":302,"props":659,"children":660},{},[661],{"type":24,"value":662},"    def login(self):  \n",{"type":19,"tag":302,"props":664,"children":666},{"class":304,"line":665},41,[667],{"type":19,"tag":302,"props":668,"children":669},{},[670],{"type":24,"value":671},"        from PyQt5.QtWidgets import QMessageBox  \n",{"type":19,"tag":302,"props":673,"children":675},{"class":304,"line":674},42,[676],{"type":19,"tag":302,"props":677,"children":678},{},[679],{"type":24,"value":680},"        # 使用information()方法弹出信息提示框  \n",{"type":19,"tag":302,"props":682,"children":684},{"class":304,"line":683},43,[685],{"type":19,"tag":302,"props":686,"children":687},{},[688],{"type":24,"value":689},"        QMessageBox.information(MainWindow, \"登录信息\",  \n",{"type":19,"tag":302,"props":691,"children":693},{"class":304,"line":692},44,[694],{"type":19,"tag":302,"props":695,"children":696},{},[697],{"type":24,"value":698},"                                \"用户名：\" + self.lineEdit.text() + \"  密码：\" + self.lineEdit_2.text(), QMessageBox.Ok)  \n",{"type":19,"tag":302,"props":700,"children":702},{"class":304,"line":701},45,[703],{"type":19,"tag":302,"props":704,"children":705},{},[706],{"type":24,"value":707},"    def retranslateUi(self, MainWindow):  \n",{"type":19,"tag":302,"props":709,"children":711},{"class":304,"line":710},46,[712],{"type":19,"tag":302,"props":713,"children":714},{},[715],{"type":24,"value":716},"        _translate = QtCore.QCoreApplication.translate  \n",{"type":19,"tag":302,"props":718,"children":720},{"class":304,"line":719},47,[721],{"type":19,"tag":302,"props":722,"children":723},{},[724],{"type":24,"value":725},"        MainWindow.setWindowTitle(_translate(\"MainWindow\", \"系统登录\"))  \n",{"type":19,"tag":302,"props":727,"children":729},{"class":304,"line":728},48,[730],{"type":19,"tag":302,"props":731,"children":732},{},[733],{"type":24,"value":734},"        self.pushButton.setText(_translate(\"MainWindow\", \"登录\"))  \n",{"type":19,"tag":302,"props":736,"children":738},{"class":304,"line":737},49,[739],{"type":19,"tag":302,"props":740,"children":741},{},[742],{"type":24,"value":743},"        self.label.setText(_translate(\"MainWindow\", \"用户名：\"))  \n",{"type":19,"tag":302,"props":745,"children":747},{"class":304,"line":746},50,[748],{"type":19,"tag":302,"props":749,"children":750},{},[751],{"type":24,"value":752},"        self.label_2.setText(_translate(\"MainWindow\", \"密  码：\"))  \n",{"type":19,"tag":302,"props":754,"children":756},{"class":304,"line":755},51,[757],{"type":19,"tag":302,"props":758,"children":759},{},[760],{"type":24,"value":761},"        self.pushButton_2.setText(_translate(\"MainWindow\", \"退出\"))  \n",{"type":19,"tag":302,"props":763,"children":765},{"class":304,"line":764},52,[766],{"type":19,"tag":302,"props":767,"children":768},{},[769],{"type":24,"value":770},"import sys  \n",{"type":19,"tag":302,"props":772,"children":774},{"class":304,"line":773},53,[775],{"type":19,"tag":302,"props":776,"children":777},{},[778],{"type":24,"value":779},"# 程序入口，程序从此处启动PyQt设计的窗体  \n",{"type":19,"tag":302,"props":781,"children":783},{"class":304,"line":782},54,[784],{"type":19,"tag":302,"props":785,"children":786},{},[787],{"type":24,"value":788},"if __name__ == '__main__':  \n",{"type":19,"tag":302,"props":790,"children":792},{"class":304,"line":791},55,[793],{"type":19,"tag":302,"props":794,"children":795},{},[796],{"type":24,"value":797},"    app = QtWidgets.QApplication(sys.argv)  \n",{"type":19,"tag":302,"props":799,"children":801},{"class":304,"line":800},56,[802],{"type":19,"tag":302,"props":803,"children":804},{},[805],{"type":24,"value":806},"    MainWindow = QtWidgets.QMainWindow()  # 创建窗体对象  \n",{"type":19,"tag":302,"props":808,"children":810},{"class":304,"line":809},57,[811],{"type":19,"tag":302,"props":812,"children":813},{},[814],{"type":24,"value":815},"    ui = Ui_MainWindow()  # 创建PyQt设计的窗体对象  \n",{"type":19,"tag":302,"props":817,"children":819},{"class":304,"line":818},58,[820],{"type":19,"tag":302,"props":821,"children":822},{},[823],{"type":24,"value":824},"    ui.setupUi(MainWindow)  # 调用PyQt窗体的方法对窗体对象进行初始化设置  \n",{"type":19,"tag":302,"props":826,"children":828},{"class":304,"line":827},59,[829],{"type":19,"tag":302,"props":830,"children":831},{},[832],{"type":24,"value":833},"    MainWindow.show()  # 显示窗体  \n",{"type":19,"tag":302,"props":835,"children":837},{"class":304,"line":836},60,[838],{"type":19,"tag":302,"props":839,"children":840},{},[841],{"type":24,"value":842},"    sys.exit(app.exec_())  # 程序关闭时退出进程\n",{"type":19,"tag":844,"props":845,"children":846},"blockquote",{},[847],{"type":19,"tag":20,"props":848,"children":849},{},[850,855,857,862,864,869,871,877,878,884,886,892],{"type":19,"tag":93,"props":851,"children":852},{},[853],{"type":24,"value":854},"Info:",{"type":24,"value":856}," 说明\n上面代码中为",{"type":19,"tag":27,"props":858,"children":860},{"className":859},[],[861],{"type":24,"value":266},{"type":24,"value":863},"按钮和",{"type":19,"tag":27,"props":865,"children":867},{"className":866},[],[868],{"type":24,"value":274},{"type":24,"value":870},"按钮设置图标时，用到了两个图标文件",{"type":19,"tag":27,"props":872,"children":874},{"className":873},[],[875],{"type":24,"value":876},"login.ico",{"type":24,"value":268},{"type":19,"tag":27,"props":879,"children":881},{"className":880},[],[882],{"type":24,"value":883},"exit.ico",{"type":24,"value":885},"，这里需要提前准备好这两个图标文件，并将它们复制到与",{"type":19,"tag":27,"props":887,"children":889},{"className":888},[],[890],{"type":24,"value":891},".py",{"type":24,"value":893},"文件的同级目录下。",{"type":19,"tag":20,"props":895,"children":896},{},[897,899,904,906,911],{"type":24,"value":898},"运行程序，输入用户名和密码，单击",{"type":19,"tag":27,"props":900,"children":902},{"className":901},[],[903],{"type":24,"value":266},{"type":24,"value":905},"按钮，可以在弹出的提示框中显示输入的用户名和密码，如图所示，而单击",{"type":19,"tag":27,"props":907,"children":909},{"className":908},[],[910],{"type":24,"value":274},{"type":24,"value":912},"按钮，可以直接关闭当前窗口。",{"type":19,"tag":20,"props":914,"children":915},{},[916],{"type":19,"tag":917,"props":918,"children":921},"img",{"alt":919,"src":920},"Pasted image 20250829091956","\u002Fimages\u002Fblog\u002Fpyqt5\u002FPasted%20image%2020250829091956.png",[],{"type":19,"tag":844,"props":923,"children":924},{},[925,971],{"type":19,"tag":20,"props":926,"children":927},{},[928,933,935,940,942,948,950,955,957,962,964,969],{"type":19,"tag":93,"props":929,"children":930},{},[931],{"type":24,"value":932},"Tip:",{"type":24,"value":934}," 多学两招\n如果想为",{"type":19,"tag":27,"props":936,"children":938},{"className":937},[],[939],{"type":24,"value":32},{"type":24,"value":941},"按钮设置快捷键，可以在创建对象时指定其文本，并在文本中添加",{"type":19,"tag":27,"props":943,"children":945},{"className":944},[],[946],{"type":24,"value":947},"&",{"type":24,"value":949},"符号，这样，",{"type":19,"tag":27,"props":951,"children":953},{"className":952},[],[954],{"type":24,"value":947},{"type":24,"value":956},"符号后面的第一个字母默认就会作为快捷键，例如在上面的实例中，为",{"type":19,"tag":27,"props":958,"children":960},{"className":959},[],[961],{"type":24,"value":266},{"type":24,"value":963},"按钮设置快捷键，则可以将创建",{"type":19,"tag":27,"props":965,"children":967},{"className":966},[],[968],{"type":24,"value":266},{"type":24,"value":970},"按钮的代码修改如下：",{"type":19,"tag":292,"props":972,"children":973},{"code":7,"language":295,"meta":7,"className":296,"style":7},[974],{"type":19,"tag":27,"props":975,"children":976},{"__ignoreMap":7},[977],{"type":19,"tag":302,"props":978,"children":979},{"class":304,"line":305},[980],{"type":19,"tag":302,"props":981,"children":982},{},[983],{"type":24,"value":7},{"type":19,"tag":20,"props":985,"children":986},{},[987],{"type":24,"value":988},"self.pushButton = QtWidgets.QPushButton(\"登录（&D）\",self.centralwidget)",{"type":19,"tag":844,"props":990,"children":991},{},[992],{"type":19,"tag":292,"props":993,"children":995},{"code":994},"修改完成之后，按键盘上的`Alt+D`组合键，即可执行与单击`登录`按钮相同的操作。\n",[996],{"type":19,"tag":27,"props":997,"children":998},{"__ignoreMap":7},[999],{"type":24,"value":994},{"type":19,"tag":58,"props":1001,"children":1003},{"id":1002},"_2toolbutton工具按钮",[1004,1006,1011],{"type":24,"value":1005},"2  ",{"type":19,"tag":27,"props":1007,"children":1009},{"className":1008},[],[1010],{"type":24,"value":40},{"type":24,"value":1012},"：工具按钮",{"type":19,"tag":72,"props":1014,"children":1015},{},[],{"type":19,"tag":20,"props":1017,"children":1018},{},[1019,1024,1026,1032,1034,1040],{"type":19,"tag":27,"props":1020,"children":1022},{"className":1021},[],[1023],{"type":24,"value":40},{"type":24,"value":1025},"控件是一个工具按钮，它本质上是一个按钮，只是在按钮中提供了默认文本",{"type":19,"tag":27,"props":1027,"children":1029},{"className":1028},[],[1030],{"type":24,"value":1031},"…",{"type":24,"value":1033},"和可选的箭头类型，它对应PyQt5中的",{"type":19,"tag":27,"props":1035,"children":1037},{"className":1036},[],[1038],{"type":24,"value":1039},"QToolButton",{"type":24,"value":1041},"类。",{"type":19,"tag":20,"props":1043,"children":1044},{},[1045,1050,1052,1057,1059,1064,1066,1071,1073,1079],{"type":19,"tag":27,"props":1046,"children":1048},{"className":1047},[],[1049],{"type":24,"value":40},{"type":24,"value":1051},"控件的使用方法与",{"type":19,"tag":27,"props":1053,"children":1055},{"className":1054},[],[1056],{"type":24,"value":32},{"type":24,"value":1058},"类似，不同的是，",{"type":19,"tag":27,"props":1060,"children":1062},{"className":1061},[],[1063],{"type":24,"value":40},{"type":24,"value":1065},"控件可以设置工具按钮的显示样式和箭头类型。其中，工具按钮的显示样式通过",{"type":19,"tag":27,"props":1067,"children":1069},{"className":1068},[],[1070],{"type":24,"value":1039},{"type":24,"value":1072},"类的",{"type":19,"tag":27,"props":1074,"children":1076},{"className":1075},[],[1077],{"type":24,"value":1078},"setToolButtonStyle()方法",{"type":24,"value":1080},"进行设置，主要支持以下5种样式：",{"type":19,"tag":1082,"props":1083,"children":1084},"ul",{},[1085,1097,1108,1119,1130],{"type":19,"tag":1086,"props":1087,"children":1088},"li",{},[1089,1095],{"type":19,"tag":27,"props":1090,"children":1092},{"className":1091},[],[1093],{"type":24,"value":1094},"Qt.ToolButtonIconOnly",{"type":24,"value":1096},"：只显示图标。",{"type":19,"tag":1086,"props":1098,"children":1099},{},[1100,1106],{"type":19,"tag":27,"props":1101,"children":1103},{"className":1102},[],[1104],{"type":24,"value":1105},"Qt.ToolButtonTextOnly",{"type":24,"value":1107},"：只显示文本。",{"type":19,"tag":1086,"props":1109,"children":1110},{},[1111,1117],{"type":19,"tag":27,"props":1112,"children":1114},{"className":1113},[],[1115],{"type":24,"value":1116},"Qt.ToolButtonTextBesideIcon",{"type":24,"value":1118},"：文本显示在图标的旁边。",{"type":19,"tag":1086,"props":1120,"children":1121},{},[1122,1128],{"type":19,"tag":27,"props":1123,"children":1125},{"className":1124},[],[1126],{"type":24,"value":1127},"Qt.ToolButtonTextUnderIcon",{"type":24,"value":1129},"：文本显示在图标的下面。",{"type":19,"tag":1086,"props":1131,"children":1132},{},[1133,1139],{"type":19,"tag":27,"props":1134,"children":1136},{"className":1135},[],[1137],{"type":24,"value":1138},"Qt.ToolButtonFollowStyle",{"type":24,"value":1140},"：跟随系统样式。",{"type":19,"tag":20,"props":1142,"children":1143},{},[1144,1146,1151,1152,1158],{"type":24,"value":1145},"工具按钮的箭头类型通过",{"type":19,"tag":27,"props":1147,"children":1149},{"className":1148},[],[1150],{"type":24,"value":1039},{"type":24,"value":1072},{"type":19,"tag":27,"props":1153,"children":1155},{"className":1154},[],[1156],{"type":24,"value":1157},"setArrowType()方法",{"type":24,"value":1159},"进行设置，主要支持以下5种箭头类型：",{"type":19,"tag":1082,"props":1161,"children":1162},{},[1163,1174,1185,1196,1207],{"type":19,"tag":1086,"props":1164,"children":1165},{},[1166,1172],{"type":19,"tag":27,"props":1167,"children":1169},{"className":1168},[],[1170],{"type":24,"value":1171},"Qt.NoArrow",{"type":24,"value":1173},"：没有箭头。",{"type":19,"tag":1086,"props":1175,"children":1176},{},[1177,1183],{"type":19,"tag":27,"props":1178,"children":1180},{"className":1179},[],[1181],{"type":24,"value":1182},"Qt.UpArrow",{"type":24,"value":1184},"：向上的箭头。",{"type":19,"tag":1086,"props":1186,"children":1187},{},[1188,1194],{"type":19,"tag":27,"props":1189,"children":1191},{"className":1190},[],[1192],{"type":24,"value":1193},"Qt.DownArrow",{"type":24,"value":1195},"：向下的箭头。",{"type":19,"tag":1086,"props":1197,"children":1198},{},[1199,1205],{"type":19,"tag":27,"props":1200,"children":1202},{"className":1201},[],[1203],{"type":24,"value":1204},"Qt.LeftArrow",{"type":24,"value":1206},"：向左的箭头。",{"type":19,"tag":1086,"props":1208,"children":1209},{},[1210,1216],{"type":19,"tag":27,"props":1211,"children":1213},{"className":1212},[],[1214],{"type":24,"value":1215},"Qt.RightArrow",{"type":24,"value":1217},"：向右的箭头。",{"type":19,"tag":20,"props":1219,"children":1220},{},[1221],{"type":19,"tag":93,"props":1222,"children":1223},{},[1224],{"type":24,"value":1225},"实例 设计一个向上箭头的工具按钮",{"type":19,"tag":20,"props":1227,"children":1228},{},[1229,1231,1236],{"type":24,"value":1230},"本实例用来对名称为",{"type":19,"tag":27,"props":1232,"children":1234},{"className":1233},[],[1235],{"type":24,"value":40},{"type":24,"value":1237},"的工具按钮进行设置，设置其箭头类型为向上箭头，并且文本显示在箭头的下面，代码如下：",{"type":19,"tag":292,"props":1239,"children":1241},{"code":1240,"language":295,"meta":7,"className":296,"style":7},"self.toolButton.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon) # 设置显示样式\nself.toolButton.setArrowType(QtCore.Qt.UpArrow) # 设置箭头类型\n",[1242],{"type":19,"tag":27,"props":1243,"children":1244},{"__ignoreMap":7},[1245,1253],{"type":19,"tag":302,"props":1246,"children":1247},{"class":304,"line":305},[1248],{"type":19,"tag":302,"props":1249,"children":1250},{},[1251],{"type":24,"value":1252},"self.toolButton.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon) # 设置显示样式\n",{"type":19,"tag":302,"props":1254,"children":1255},{"class":304,"line":314},[1256],{"type":19,"tag":302,"props":1257,"children":1258},{},[1259],{"type":24,"value":1260},"self.toolButton.setArrowType(QtCore.Qt.UpArrow) # 设置箭头类型\n",{"type":19,"tag":20,"props":1262,"children":1263},{},[1264],{"type":24,"value":1265},"运行效果如图所示。",{"type":19,"tag":20,"props":1267,"children":1268},{},[1269],{"type":19,"tag":917,"props":1270,"children":1273},{"alt":1271,"src":1272},"Pasted image 20250829094305","\u002Fimages\u002Fblog\u002Fpyqt5\u002FPasted%20image%2020250829094305.png",[],{"type":19,"tag":844,"props":1275,"children":1276},{},[1277,1324],{"type":19,"tag":20,"props":1278,"children":1279},{},[1280,1284,1286,1291,1293,1299,1301,1307,1309,1314,1316,1322],{"type":19,"tag":93,"props":1281,"children":1282},{},[1283],{"type":24,"value":932},{"type":24,"value":1285}," 多学两招\n",{"type":19,"tag":27,"props":1287,"children":1289},{"className":1288},[],[1290],{"type":24,"value":40},{"type":24,"value":1292},"控件中的箭头图标默认大小为",{"type":19,"tag":27,"props":1294,"children":1296},{"className":1295},[],[1297],{"type":24,"value":1298},"16×16",{"type":24,"value":1300},"，如果想改变箭头图标的大小，可以使用",{"type":19,"tag":27,"props":1302,"children":1304},{"className":1303},[],[1305],{"type":24,"value":1306},"setIconSize()方法",{"type":24,"value":1308},"，例如，下面代码可以将",{"type":19,"tag":27,"props":1310,"children":1312},{"className":1311},[],[1313],{"type":24,"value":40},{"type":24,"value":1315},"按钮的箭头图标大小修改为",{"type":19,"tag":27,"props":1317,"children":1319},{"className":1318},[],[1320],{"type":24,"value":1321},"32×32",{"type":24,"value":1323},"：",{"type":19,"tag":292,"props":1325,"children":1326},{"code":7,"language":295,"meta":7,"className":296,"style":7},[1327],{"type":19,"tag":27,"props":1328,"children":1329},{"__ignoreMap":7},[1330],{"type":19,"tag":302,"props":1331,"children":1332},{"class":304,"line":305},[1333],{"type":19,"tag":302,"props":1334,"children":1335},{},[1336],{"type":24,"value":7},{"type":19,"tag":20,"props":1338,"children":1339},{},[1340],{"type":24,"value":1341},"self.toolButton.setIconSize(QtCore.QSize(32, 32))  # 设置图标大小",{"type":19,"tag":844,"props":1343,"children":1344},{},[1345],{"type":19,"tag":292,"props":1346,"children":1347},{"code":7},[1348],{"type":19,"tag":27,"props":1349,"children":1350},{"__ignoreMap":7},[1351],{"type":24,"value":7},{"type":19,"tag":58,"props":1353,"children":1355},{"id":1354},"_3commandlinkbutton命令链接按钮",[1356,1358,1363],{"type":24,"value":1357},"3  ",{"type":19,"tag":27,"props":1359,"children":1361},{"className":1360},[],[1362],{"type":24,"value":47},{"type":24,"value":1364},"：命令链接按钮",{"type":19,"tag":72,"props":1366,"children":1367},{},[],{"type":19,"tag":20,"props":1369,"children":1370},{},[1371,1376,1378,1384,1386,1391],{"type":19,"tag":27,"props":1372,"children":1374},{"className":1373},[],[1375],{"type":24,"value":47},{"type":24,"value":1377},"控件是一个命令链接按钮，它对应PyQt5中的",{"type":19,"tag":27,"props":1379,"children":1381},{"className":1380},[],[1382],{"type":24,"value":1383},"QCommandLinkButton",{"type":24,"value":1385},"类，该类与",{"type":19,"tag":27,"props":1387,"children":1389},{"className":1388},[],[1390],{"type":24,"value":32},{"type":24,"value":1392},"按钮的用法类似，区别是，该按钮自定义一个向右的箭头图标。",{"type":19,"tag":20,"props":1394,"children":1395},{},[1396],{"type":19,"tag":93,"props":1397,"children":1398},{},[1399],{"type":24,"value":1400},"实例 使用命令链接按钮",{"type":19,"tag":20,"props":1402,"children":1403},{},[1404,1406,1412,1414,1419,1421,1427],{"type":24,"value":1405},"使用Qt Designer设计器创建一个",{"type":19,"tag":27,"props":1407,"children":1409},{"className":1408},[],[1410],{"type":24,"value":1411},"MainWindow",{"type":24,"value":1413},"窗口，其中添加一个",{"type":19,"tag":27,"props":1415,"children":1417},{"className":1416},[],[1418],{"type":24,"value":47},{"type":24,"value":1420},"控件，并设置其文本为",{"type":19,"tag":27,"props":1422,"children":1424},{"className":1423},[],[1425],{"type":24,"value":1426},"https:\u002F\u002Fwww.github.com\u002FCouioly",{"type":24,"value":1428},"，运行程序，默认效果如图所示，当将鼠标移动到按钮上时，显示为超链接效果，如图所示。",{"type":19,"tag":1082,"props":1430,"children":1431},{},[1432],{"type":19,"tag":1086,"props":1433,"children":1434},{},[1435,1440],{"type":19,"tag":27,"props":1436,"children":1438},{"className":1437},[],[1439],{"type":24,"value":47},{"type":24,"value":1441},"控件的默认效果",{"type":19,"tag":20,"props":1443,"children":1444},{},[1445],{"type":19,"tag":917,"props":1446,"children":1449},{"alt":1447,"src":1448},"Pasted image 20250829095507","\u002Fimages\u002Fblog\u002Fpyqt5\u002FPasted%20image%2020250829095507.png",[],{"type":19,"tag":1082,"props":1451,"children":1452},{},[1453],{"type":19,"tag":1086,"props":1454,"children":1455},{},[1456,1458,1463],{"type":24,"value":1457},"鼠标移动到",{"type":19,"tag":27,"props":1459,"children":1461},{"className":1460},[],[1462],{"type":24,"value":47},{"type":24,"value":1464},"按钮上的效果",{"type":19,"tag":20,"props":1466,"children":1467},{},[1468],{"type":19,"tag":917,"props":1469,"children":1472},{"alt":1470,"src":1471},"Pasted image 20250829095441","\u002Fimages\u002Fblog\u002Fpyqt5\u002FPasted%20image%2020250829095441.png",[],{"type":19,"tag":58,"props":1474,"children":1476},{"id":1475},"_4radiobutton单选按钮",[1477,1479,1485],{"type":24,"value":1478},"4  ",{"type":19,"tag":27,"props":1480,"children":1482},{"className":1481},[],[1483],{"type":24,"value":1484},"RadioButton",{"type":24,"value":1486},"：单选按钮",{"type":19,"tag":72,"props":1488,"children":1489},{},[],{"type":19,"tag":20,"props":1491,"children":1492},{},[1493,1498],{"type":19,"tag":27,"props":1494,"children":1496},{"className":1495},[],[1497],{"type":24,"value":1484},{"type":24,"value":1499},"是单选按钮控件，它为用户提供由两个或多个互斥选项组成的选项集，当用户选中某单选按钮时，同一组中的其他单选按钮不能同时选定。",{"type":19,"tag":20,"props":1501,"children":1502},{},[1503,1508,1509,1515],{"type":19,"tag":27,"props":1504,"children":1506},{"className":1505},[],[1507],{"type":24,"value":1484},{"type":24,"value":109},{"type":19,"tag":27,"props":1510,"children":1512},{"className":1511},[],[1513],{"type":24,"value":1514},"QRadioButton",{"type":24,"value":117},{"type":19,"tag":119,"props":1517,"children":1518},{},[1519,1539],{"type":19,"tag":123,"props":1520,"children":1521},{},[1522],{"type":19,"tag":127,"props":1523,"children":1524},{},[1525,1532],{"type":19,"tag":131,"props":1526,"children":1527},{},[1528],{"type":19,"tag":93,"props":1529,"children":1530},{},[1531],{"type":24,"value":138},{"type":19,"tag":131,"props":1533,"children":1534},{},[1535],{"type":19,"tag":93,"props":1536,"children":1537},{},[1538],{"type":24,"value":146},{"type":19,"tag":148,"props":1540,"children":1541},{},[1542,1554,1566,1579],{"type":19,"tag":127,"props":1543,"children":1544},{},[1545,1549],{"type":19,"tag":155,"props":1546,"children":1547},{},[1548],{"type":24,"value":159},{"type":19,"tag":155,"props":1550,"children":1551},{},[1552],{"type":24,"value":1553},"设置单选按钮显示的文本",{"type":19,"tag":127,"props":1555,"children":1556},{},[1557,1561],{"type":19,"tag":155,"props":1558,"children":1559},{},[1560],{"type":24,"value":172},{"type":19,"tag":155,"props":1562,"children":1563},{},[1564],{"type":24,"value":1565},"获取单选按钮显示的文本",{"type":19,"tag":127,"props":1567,"children":1568},{},[1569,1574],{"type":19,"tag":155,"props":1570,"children":1571},{},[1572],{"type":24,"value":1573},"setChecked()或者setCheckable()",{"type":19,"tag":155,"props":1575,"children":1576},{},[1577],{"type":24,"value":1578},"设置单选按钮是否为选中状态，True为选中状态；False为未选中状态",{"type":19,"tag":127,"props":1580,"children":1581},{},[1582,1587],{"type":19,"tag":155,"props":1583,"children":1584},{},[1585],{"type":24,"value":1586},"isChecked()",{"type":19,"tag":155,"props":1588,"children":1589},{},[1590],{"type":24,"value":1591},"返回单选按钮的状态，True为选中状态；False为未选中状态",{"type":19,"tag":20,"props":1593,"children":1594},{},[1595,1600,1602,1607,1608,1614,1616,1621,1623,1628,1630,1635],{"type":19,"tag":27,"props":1596,"children":1598},{"className":1597},[],[1599],{"type":24,"value":1484},{"type":24,"value":1601},"控件常用的信号有两个：",{"type":19,"tag":27,"props":1603,"children":1605},{"className":1604},[],[1606],{"type":24,"value":245},{"type":24,"value":268},{"type":19,"tag":27,"props":1609,"children":1611},{"className":1610},[],[1612],{"type":24,"value":1613},"toggled",{"type":24,"value":1615},"，其中，",{"type":19,"tag":27,"props":1617,"children":1619},{"className":1618},[],[1620],{"type":24,"value":245},{"type":24,"value":1622},"信号在每次单击单选按钮时都会发射；而",{"type":19,"tag":27,"props":1624,"children":1626},{"className":1625},[],[1627],{"type":24,"value":1613},{"type":24,"value":1629},"信号则在单选按钮的状态改变时才会发射。因此通常使用",{"type":19,"tag":27,"props":1631,"children":1633},{"className":1632},[],[1634],{"type":24,"value":1613},{"type":24,"value":1636},"信号监控单选按钮的选择状态。",{"type":19,"tag":20,"props":1638,"children":1639},{},[1640],{"type":19,"tag":93,"props":1641,"children":1642},{},[1643],{"type":24,"value":1644},"实例 选择用户登录角色",{"type":19,"tag":20,"props":1646,"children":1647},{},[1648,1650,1655,1657,1663,1664,1670,1672,1678,1680,1685,1687,1692,1694,1699,1701,1707,1709,1714],{"type":24,"value":1649},"在窗口中添加两个",{"type":19,"tag":27,"props":1651,"children":1653},{"className":1652},[],[1654],{"type":24,"value":1484},{"type":24,"value":1656},"控件，用来选择管理员登录和普通用户登录，它们的文本分别设置为",{"type":19,"tag":27,"props":1658,"children":1660},{"className":1659},[],[1661],{"type":24,"value":1662},"管理员",{"type":24,"value":268},{"type":19,"tag":27,"props":1665,"children":1667},{"className":1666},[],[1668],{"type":24,"value":1669},"普通用户",{"type":24,"value":1671},"，然后定义一个",{"type":19,"tag":27,"props":1673,"children":1675},{"className":1674},[],[1676],{"type":24,"value":1677},"select()槽函数",{"type":24,"value":1679},"，用来判断",{"type":19,"tag":27,"props":1681,"children":1683},{"className":1682},[],[1684],{"type":24,"value":1662},{"type":24,"value":1686},"单选按钮和",{"type":19,"tag":27,"props":1688,"children":1690},{"className":1689},[],[1691],{"type":24,"value":1669},{"type":24,"value":1693},"单选按钮分别选中时的弹出信息，最后将",{"type":19,"tag":27,"props":1695,"children":1697},{"className":1696},[],[1698],{"type":24,"value":1662},{"type":24,"value":1700},"单选按钮的",{"type":19,"tag":27,"props":1702,"children":1704},{"className":1703},[],[1705],{"type":24,"value":1706},"toggled信号",{"type":24,"value":1708},"与自定义的",{"type":19,"tag":27,"props":1710,"children":1712},{"className":1711},[],[1713],{"type":24,"value":1677},{"type":24,"value":1715},"关联。代码如下：",{"type":19,"tag":292,"props":1717,"children":1719},{"code":1718,"language":295,"meta":7,"className":296,"style":7},"from PyQt5 import QtCore, QtGui, QtWidgets  \nfrom PyQt5.QtWidgets import QMessageBox  \n  \n  \nclass Ui_MainWindow(object):  \n    def setupUi(self, MainWindow):  \n        MainWindow.setObjectName(\"MainWindow\")  \n        MainWindow.resize(215, 128)  \n        self.centralwidget = QtWidgets.QWidget(MainWindow)  \n        self.centralwidget.setObjectName(\"centralwidget\")  \n        self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)  \n        self.lineEdit_2.setGeometry(QtCore.QRect(75, 44, 113, 20))  \n        self.lineEdit_2.setObjectName(\"lineEdit_2\")  \n        self.lineEdit_2.setEchoMode(QtWidgets.QLineEdit.Password)  # 设置文本框为密码  \n        # 设置只能输入8位数字  \n        self.lineEdit_2.setValidator(QtGui.QIntValidator(10000000, 99999999))  \n        self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)  \n        self.pushButton_2.setGeometry(QtCore.QRect(113, 97, 61, 23))  \n        self.pushButton_2.setObjectName(\"pushButton_2\")  \n        self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)  \n        self.lineEdit.setGeometry(QtCore.QRect(76, 12, 113, 20))  \n        self.lineEdit.setObjectName(\"lineEdit\")  \n        self.pushButton = QtWidgets.QPushButton(self.centralwidget)  \n        self.pushButton.setGeometry(QtCore.QRect(33, 97, 61, 23))  \n        self.pushButton.setObjectName(\"pushButton\")  \n        self.label_2 = QtWidgets.QLabel(self.centralwidget)  \n        self.label_2.setGeometry(QtCore.QRect(26, 46, 54, 12))  \n        self.label_2.setObjectName(\"label_2\")  \n        self.label = QtWidgets.QLabel(self.centralwidget)  \n        self.label.setGeometry(QtCore.QRect(26, 16, 54, 12))  \n        self.label.setObjectName(\"label\")  \n        self.radioButton = QtWidgets.QRadioButton(self.centralwidget)  \n        self.radioButton.setGeometry(QtCore.QRect(36, 73, 61, 16))  \n        self.radioButton.setObjectName(\"radioButton\")  \n        self.radioButton.setChecked(True)  # 设置“管理员”单选按钮默认选中  \n        self.radioButton_2 = QtWidgets.QRadioButton(self.centralwidget)  \n        self.radioButton_2.setGeometry(QtCore.QRect(106, 73, 71, 16))  \n        self.radioButton_2.setObjectName(\"radioButton_2\")  \n        MainWindow.setCentralWidget(self.centralwidget)  \n        self.retranslateUi(MainWindow)  \n        # 为“登录”按钮的clicked信号绑定自定义槽函数  \n        self.pushButton.clicked.connect(self.login)  \n        # 为“退出”按钮的clicked信号绑定MainWindow窗口自带的close槽函数  \n        self.pushButton_2.clicked.connect(MainWindow.close)  \n        # 为单选按钮的toggled信号绑定自定义槽函数  \n        self.radioButton.toggled.connect(self.select)  \n        QtCore.QMetaObject.connectSlotsByName(MainWindow)  \n  \n    def login(self):  \n        # 使用information()方法弹出信息提示框  \n        QMessageBox.information(MainWindow, \"登录信息\",\"用户名：\" + self.lineEdit.text() + \"  密码：\" + self.lineEdit_2.text(), QMessageBox.Ok)  \n    # 自定义槽函数，用来判断用户登录身份  \n    def select(self):  \n        if self.radioButton.isChecked():  # 判断是否为管理员登录  \n            QMessageBox.information(MainWindow, \"提示\", \"您选择的是 管理员  登录\", QMessageBox.Ok)  \n        elif self.radioButton_2.isChecked():  # 判断是否为普通用户登录  \n            QMessageBox.information(MainWindow, \"提示\", \"您选择的是 普通用户  登录\", QMessageBox.Ok)  \n  \n    def retranslateUi(self, MainWindow):  \n        _translate = QtCore.QCoreApplication.translate  \n        MainWindow.setWindowTitle(_translate(\"MainWindow\", \"系统登录\"))  \n        self.pushButton_2.setText(_translate(\"MainWindow\", \"重置\"))  \n        self.pushButton.setText(_translate(\"MainWindow\", \"登录\"))  \n        self.label_2.setText(_translate(\"MainWindow\", \"密  码：\"))  \n        self.label.setText(_translate(\"MainWindow\", \"用户名：\"))  \n        self.radioButton.setText(_translate(\"MainWindow\", \"管理员\"))  \n        self.radioButton_2.setText(_translate(\"MainWindow\", \"普通用户\"))  \n  \nimport sys  \n# 程序入口，程序从此处启动PyQt设计的窗体  \nif __name__ == '__main__':  \n    app = QtWidgets.QApplication(sys.argv)  \n    MainWindow = QtWidgets.QMainWindow()  # 创建窗体对象  \n    ui = Ui_MainWindow()  # 创建PyQt设计的窗体对象  \n    ui.setupUi(MainWindow)  # 调用PyQt窗体的方法对窗体对象进行初始化设置  \n    MainWindow.show()  # 显示窗体  \n    sys.exit(app.exec_())  # 程序关闭时退出进程\n",[1720],{"type":19,"tag":27,"props":1721,"children":1722},{"__ignoreMap":7},[1723,1730,1738,1745,1752,1759,1766,1773,1781,1788,1795,1802,1810,1817,1824,1831,1838,1845,1853,1860,1867,1875,1882,1889,1897,1904,1911,1919,1926,1933,1941,1948,1956,1964,1972,1980,1988,1996,2004,2011,2018,2025,2032,2040,2047,2055,2063,2070,2077,2084,2091,2099,2107,2115,2123,2131,2139,2147,2154,2161,2168,2176,2185,2193,2201,2209,2218,2227,2235,2243,2251,2259,2267,2275,2283,2291,2299],{"type":19,"tag":302,"props":1724,"children":1725},{"class":304,"line":305},[1726],{"type":19,"tag":302,"props":1727,"children":1728},{},[1729],{"type":24,"value":311},{"type":19,"tag":302,"props":1731,"children":1732},{"class":304,"line":314},[1733],{"type":19,"tag":302,"props":1734,"children":1735},{},[1736],{"type":24,"value":1737},"from PyQt5.QtWidgets import QMessageBox  \n",{"type":19,"tag":302,"props":1739,"children":1740},{"class":304,"line":323},[1741],{"type":19,"tag":302,"props":1742,"children":1743},{},[1744],{"type":24,"value":329},{"type":19,"tag":302,"props":1746,"children":1747},{"class":304,"line":332},[1748],{"type":19,"tag":302,"props":1749,"children":1750},{},[1751],{"type":24,"value":329},{"type":19,"tag":302,"props":1753,"children":1754},{"class":304,"line":341},[1755],{"type":19,"tag":302,"props":1756,"children":1757},{},[1758],{"type":24,"value":338},{"type":19,"tag":302,"props":1760,"children":1761},{"class":304,"line":350},[1762],{"type":19,"tag":302,"props":1763,"children":1764},{},[1765],{"type":24,"value":347},{"type":19,"tag":302,"props":1767,"children":1768},{"class":304,"line":359},[1769],{"type":19,"tag":302,"props":1770,"children":1771},{},[1772],{"type":24,"value":356},{"type":19,"tag":302,"props":1774,"children":1775},{"class":304,"line":368},[1776],{"type":19,"tag":302,"props":1777,"children":1778},{},[1779],{"type":24,"value":1780},"        MainWindow.resize(215, 128)  \n",{"type":19,"tag":302,"props":1782,"children":1783},{"class":304,"line":377},[1784],{"type":19,"tag":302,"props":1785,"children":1786},{},[1787],{"type":24,"value":374},{"type":19,"tag":302,"props":1789,"children":1790},{"class":304,"line":386},[1791],{"type":19,"tag":302,"props":1792,"children":1793},{},[1794],{"type":24,"value":383},{"type":19,"tag":302,"props":1796,"children":1797},{"class":304,"line":395},[1798],{"type":19,"tag":302,"props":1799,"children":1800},{},[1801],{"type":24,"value":509},{"type":19,"tag":302,"props":1803,"children":1804},{"class":304,"line":404},[1805],{"type":19,"tag":302,"props":1806,"children":1807},{},[1808],{"type":24,"value":1809},"        self.lineEdit_2.setGeometry(QtCore.QRect(75, 44, 113, 20))  \n",{"type":19,"tag":302,"props":1811,"children":1812},{"class":304,"line":413},[1813],{"type":19,"tag":302,"props":1814,"children":1815},{},[1816],{"type":24,"value":527},{"type":19,"tag":302,"props":1818,"children":1819},{"class":304,"line":422},[1820],{"type":19,"tag":302,"props":1821,"children":1822},{},[1823],{"type":24,"value":536},{"type":19,"tag":302,"props":1825,"children":1826},{"class":304,"line":431},[1827],{"type":19,"tag":302,"props":1828,"children":1829},{},[1830],{"type":24,"value":545},{"type":19,"tag":302,"props":1832,"children":1833},{"class":304,"line":440},[1834],{"type":19,"tag":302,"props":1835,"children":1836},{},[1837],{"type":24,"value":554},{"type":19,"tag":302,"props":1839,"children":1840},{"class":304,"line":449},[1841],{"type":19,"tag":302,"props":1842,"children":1843},{},[1844],{"type":24,"value":563},{"type":19,"tag":302,"props":1846,"children":1847},{"class":304,"line":458},[1848],{"type":19,"tag":302,"props":1849,"children":1850},{},[1851],{"type":24,"value":1852},"        self.pushButton_2.setGeometry(QtCore.QRect(113, 97, 61, 23))  \n",{"type":19,"tag":302,"props":1854,"children":1855},{"class":304,"line":467},[1856],{"type":19,"tag":302,"props":1857,"children":1858},{},[1859],{"type":24,"value":581},{"type":19,"tag":302,"props":1861,"children":1862},{"class":304,"line":476},[1863],{"type":19,"tag":302,"props":1864,"children":1865},{},[1866],{"type":24,"value":482},{"type":19,"tag":302,"props":1868,"children":1869},{"class":304,"line":485},[1870],{"type":19,"tag":302,"props":1871,"children":1872},{},[1873],{"type":24,"value":1874},"        self.lineEdit.setGeometry(QtCore.QRect(76, 12, 113, 20))  \n",{"type":19,"tag":302,"props":1876,"children":1877},{"class":304,"line":494},[1878],{"type":19,"tag":302,"props":1879,"children":1880},{},[1881],{"type":24,"value":500},{"type":19,"tag":302,"props":1883,"children":1884},{"class":304,"line":503},[1885],{"type":19,"tag":302,"props":1886,"children":1887},{},[1888],{"type":24,"value":392},{"type":19,"tag":302,"props":1890,"children":1891},{"class":304,"line":512},[1892],{"type":19,"tag":302,"props":1893,"children":1894},{},[1895],{"type":24,"value":1896},"        self.pushButton.setGeometry(QtCore.QRect(33, 97, 61, 23))  \n",{"type":19,"tag":302,"props":1898,"children":1899},{"class":304,"line":521},[1900],{"type":19,"tag":302,"props":1901,"children":1902},{},[1903],{"type":24,"value":410},{"type":19,"tag":302,"props":1905,"children":1906},{"class":304,"line":530},[1907],{"type":19,"tag":302,"props":1908,"children":1909},{},[1910],{"type":24,"value":455},{"type":19,"tag":302,"props":1912,"children":1913},{"class":304,"line":539},[1914],{"type":19,"tag":302,"props":1915,"children":1916},{},[1917],{"type":24,"value":1918},"        self.label_2.setGeometry(QtCore.QRect(26, 46, 54, 12))  \n",{"type":19,"tag":302,"props":1920,"children":1921},{"class":304,"line":548},[1922],{"type":19,"tag":302,"props":1923,"children":1924},{},[1925],{"type":24,"value":473},{"type":19,"tag":302,"props":1927,"children":1928},{"class":304,"line":557},[1929],{"type":19,"tag":302,"props":1930,"children":1931},{},[1932],{"type":24,"value":428},{"type":19,"tag":302,"props":1934,"children":1935},{"class":304,"line":566},[1936],{"type":19,"tag":302,"props":1937,"children":1938},{},[1939],{"type":24,"value":1940},"        self.label.setGeometry(QtCore.QRect(26, 16, 54, 12))  \n",{"type":19,"tag":302,"props":1942,"children":1943},{"class":304,"line":575},[1944],{"type":19,"tag":302,"props":1945,"children":1946},{},[1947],{"type":24,"value":446},{"type":19,"tag":302,"props":1949,"children":1950},{"class":304,"line":584},[1951],{"type":19,"tag":302,"props":1952,"children":1953},{},[1954],{"type":24,"value":1955},"        self.radioButton = QtWidgets.QRadioButton(self.centralwidget)  \n",{"type":19,"tag":302,"props":1957,"children":1958},{"class":304,"line":593},[1959],{"type":19,"tag":302,"props":1960,"children":1961},{},[1962],{"type":24,"value":1963},"        self.radioButton.setGeometry(QtCore.QRect(36, 73, 61, 16))  \n",{"type":19,"tag":302,"props":1965,"children":1966},{"class":304,"line":602},[1967],{"type":19,"tag":302,"props":1968,"children":1969},{},[1970],{"type":24,"value":1971},"        self.radioButton.setObjectName(\"radioButton\")  \n",{"type":19,"tag":302,"props":1973,"children":1974},{"class":304,"line":611},[1975],{"type":19,"tag":302,"props":1976,"children":1977},{},[1978],{"type":24,"value":1979},"        self.radioButton.setChecked(True)  # 设置“管理员”单选按钮默认选中  \n",{"type":19,"tag":302,"props":1981,"children":1982},{"class":304,"line":620},[1983],{"type":19,"tag":302,"props":1984,"children":1985},{},[1986],{"type":24,"value":1987},"        self.radioButton_2 = QtWidgets.QRadioButton(self.centralwidget)  \n",{"type":19,"tag":302,"props":1989,"children":1990},{"class":304,"line":629},[1991],{"type":19,"tag":302,"props":1992,"children":1993},{},[1994],{"type":24,"value":1995},"        self.radioButton_2.setGeometry(QtCore.QRect(106, 73, 71, 16))  \n",{"type":19,"tag":302,"props":1997,"children":1998},{"class":304,"line":638},[1999],{"type":19,"tag":302,"props":2000,"children":2001},{},[2002],{"type":24,"value":2003},"        self.radioButton_2.setObjectName(\"radioButton_2\")  \n",{"type":19,"tag":302,"props":2005,"children":2006},{"class":304,"line":647},[2007],{"type":19,"tag":302,"props":2008,"children":2009},{},[2010],{"type":24,"value":599},{"type":19,"tag":302,"props":2012,"children":2013},{"class":304,"line":656},[2014],{"type":19,"tag":302,"props":2015,"children":2016},{},[2017],{"type":24,"value":608},{"type":19,"tag":302,"props":2019,"children":2020},{"class":304,"line":665},[2021],{"type":19,"tag":302,"props":2022,"children":2023},{},[2024],{"type":24,"value":617},{"type":19,"tag":302,"props":2026,"children":2027},{"class":304,"line":674},[2028],{"type":19,"tag":302,"props":2029,"children":2030},{},[2031],{"type":24,"value":626},{"type":19,"tag":302,"props":2033,"children":2034},{"class":304,"line":683},[2035],{"type":19,"tag":302,"props":2036,"children":2037},{},[2038],{"type":24,"value":2039},"        # 为“退出”按钮的clicked信号绑定MainWindow窗口自带的close槽函数  \n",{"type":19,"tag":302,"props":2041,"children":2042},{"class":304,"line":692},[2043],{"type":19,"tag":302,"props":2044,"children":2045},{},[2046],{"type":24,"value":644},{"type":19,"tag":302,"props":2048,"children":2049},{"class":304,"line":701},[2050],{"type":19,"tag":302,"props":2051,"children":2052},{},[2053],{"type":24,"value":2054},"        # 为单选按钮的toggled信号绑定自定义槽函数  \n",{"type":19,"tag":302,"props":2056,"children":2057},{"class":304,"line":710},[2058],{"type":19,"tag":302,"props":2059,"children":2060},{},[2061],{"type":24,"value":2062},"        self.radioButton.toggled.connect(self.select)  \n",{"type":19,"tag":302,"props":2064,"children":2065},{"class":304,"line":719},[2066],{"type":19,"tag":302,"props":2067,"children":2068},{},[2069],{"type":24,"value":653},{"type":19,"tag":302,"props":2071,"children":2072},{"class":304,"line":728},[2073],{"type":19,"tag":302,"props":2074,"children":2075},{},[2076],{"type":24,"value":329},{"type":19,"tag":302,"props":2078,"children":2079},{"class":304,"line":737},[2080],{"type":19,"tag":302,"props":2081,"children":2082},{},[2083],{"type":24,"value":662},{"type":19,"tag":302,"props":2085,"children":2086},{"class":304,"line":746},[2087],{"type":19,"tag":302,"props":2088,"children":2089},{},[2090],{"type":24,"value":680},{"type":19,"tag":302,"props":2092,"children":2093},{"class":304,"line":755},[2094],{"type":19,"tag":302,"props":2095,"children":2096},{},[2097],{"type":24,"value":2098},"        QMessageBox.information(MainWindow, \"登录信息\",\"用户名：\" + self.lineEdit.text() + \"  密码：\" + self.lineEdit_2.text(), QMessageBox.Ok)  \n",{"type":19,"tag":302,"props":2100,"children":2101},{"class":304,"line":764},[2102],{"type":19,"tag":302,"props":2103,"children":2104},{},[2105],{"type":24,"value":2106},"    # 自定义槽函数，用来判断用户登录身份  \n",{"type":19,"tag":302,"props":2108,"children":2109},{"class":304,"line":773},[2110],{"type":19,"tag":302,"props":2111,"children":2112},{},[2113],{"type":24,"value":2114},"    def select(self):  \n",{"type":19,"tag":302,"props":2116,"children":2117},{"class":304,"line":782},[2118],{"type":19,"tag":302,"props":2119,"children":2120},{},[2121],{"type":24,"value":2122},"        if self.radioButton.isChecked():  # 判断是否为管理员登录  \n",{"type":19,"tag":302,"props":2124,"children":2125},{"class":304,"line":791},[2126],{"type":19,"tag":302,"props":2127,"children":2128},{},[2129],{"type":24,"value":2130},"            QMessageBox.information(MainWindow, \"提示\", \"您选择的是 管理员  登录\", QMessageBox.Ok)  \n",{"type":19,"tag":302,"props":2132,"children":2133},{"class":304,"line":800},[2134],{"type":19,"tag":302,"props":2135,"children":2136},{},[2137],{"type":24,"value":2138},"        elif self.radioButton_2.isChecked():  # 判断是否为普通用户登录  \n",{"type":19,"tag":302,"props":2140,"children":2141},{"class":304,"line":809},[2142],{"type":19,"tag":302,"props":2143,"children":2144},{},[2145],{"type":24,"value":2146},"            QMessageBox.information(MainWindow, \"提示\", \"您选择的是 普通用户  登录\", QMessageBox.Ok)  \n",{"type":19,"tag":302,"props":2148,"children":2149},{"class":304,"line":818},[2150],{"type":19,"tag":302,"props":2151,"children":2152},{},[2153],{"type":24,"value":329},{"type":19,"tag":302,"props":2155,"children":2156},{"class":304,"line":827},[2157],{"type":19,"tag":302,"props":2158,"children":2159},{},[2160],{"type":24,"value":707},{"type":19,"tag":302,"props":2162,"children":2163},{"class":304,"line":836},[2164],{"type":19,"tag":302,"props":2165,"children":2166},{},[2167],{"type":24,"value":716},{"type":19,"tag":302,"props":2169,"children":2171},{"class":304,"line":2170},61,[2172],{"type":19,"tag":302,"props":2173,"children":2174},{},[2175],{"type":24,"value":725},{"type":19,"tag":302,"props":2177,"children":2179},{"class":304,"line":2178},62,[2180],{"type":19,"tag":302,"props":2181,"children":2182},{},[2183],{"type":24,"value":2184},"        self.pushButton_2.setText(_translate(\"MainWindow\", \"重置\"))  \n",{"type":19,"tag":302,"props":2186,"children":2188},{"class":304,"line":2187},63,[2189],{"type":19,"tag":302,"props":2190,"children":2191},{},[2192],{"type":24,"value":734},{"type":19,"tag":302,"props":2194,"children":2196},{"class":304,"line":2195},64,[2197],{"type":19,"tag":302,"props":2198,"children":2199},{},[2200],{"type":24,"value":752},{"type":19,"tag":302,"props":2202,"children":2204},{"class":304,"line":2203},65,[2205],{"type":19,"tag":302,"props":2206,"children":2207},{},[2208],{"type":24,"value":743},{"type":19,"tag":302,"props":2210,"children":2212},{"class":304,"line":2211},66,[2213],{"type":19,"tag":302,"props":2214,"children":2215},{},[2216],{"type":24,"value":2217},"        self.radioButton.setText(_translate(\"MainWindow\", \"管理员\"))  \n",{"type":19,"tag":302,"props":2219,"children":2221},{"class":304,"line":2220},67,[2222],{"type":19,"tag":302,"props":2223,"children":2224},{},[2225],{"type":24,"value":2226},"        self.radioButton_2.setText(_translate(\"MainWindow\", \"普通用户\"))  \n",{"type":19,"tag":302,"props":2228,"children":2230},{"class":304,"line":2229},68,[2231],{"type":19,"tag":302,"props":2232,"children":2233},{},[2234],{"type":24,"value":329},{"type":19,"tag":302,"props":2236,"children":2238},{"class":304,"line":2237},69,[2239],{"type":19,"tag":302,"props":2240,"children":2241},{},[2242],{"type":24,"value":770},{"type":19,"tag":302,"props":2244,"children":2246},{"class":304,"line":2245},70,[2247],{"type":19,"tag":302,"props":2248,"children":2249},{},[2250],{"type":24,"value":779},{"type":19,"tag":302,"props":2252,"children":2254},{"class":304,"line":2253},71,[2255],{"type":19,"tag":302,"props":2256,"children":2257},{},[2258],{"type":24,"value":788},{"type":19,"tag":302,"props":2260,"children":2262},{"class":304,"line":2261},72,[2263],{"type":19,"tag":302,"props":2264,"children":2265},{},[2266],{"type":24,"value":797},{"type":19,"tag":302,"props":2268,"children":2270},{"class":304,"line":2269},73,[2271],{"type":19,"tag":302,"props":2272,"children":2273},{},[2274],{"type":24,"value":806},{"type":19,"tag":302,"props":2276,"children":2278},{"class":304,"line":2277},74,[2279],{"type":19,"tag":302,"props":2280,"children":2281},{},[2282],{"type":24,"value":815},{"type":19,"tag":302,"props":2284,"children":2286},{"class":304,"line":2285},75,[2287],{"type":19,"tag":302,"props":2288,"children":2289},{},[2290],{"type":24,"value":824},{"type":19,"tag":302,"props":2292,"children":2294},{"class":304,"line":2293},76,[2295],{"type":19,"tag":302,"props":2296,"children":2297},{},[2298],{"type":24,"value":833},{"type":19,"tag":302,"props":2300,"children":2302},{"class":304,"line":2301},77,[2303],{"type":19,"tag":302,"props":2304,"children":2305},{},[2306],{"type":24,"value":842},{"type":19,"tag":20,"props":2308,"children":2309},{},[2310,2312,2317,2319,2324,2326,2332],{"type":24,"value":2311},"运行程序，",{"type":19,"tag":27,"props":2313,"children":2315},{"className":2314},[],[2316],{"type":24,"value":1662},{"type":24,"value":2318},"单选按钮默认处于选中状态，选中",{"type":19,"tag":27,"props":2320,"children":2322},{"className":2321},[],[2323],{"type":24,"value":1669},{"type":24,"value":2325},"单选按钮，将弹出",{"type":19,"tag":27,"props":2327,"children":2329},{"className":2328},[],[2330],{"type":24,"value":2331},"您选择的是 普通用户 登录",{"type":24,"value":2333},"提示框，如图所示。",{"type":19,"tag":20,"props":2335,"children":2336},{},[2337],{"type":19,"tag":917,"props":2338,"children":2341},{"alt":2339,"src":2340},"Pasted image 20250829100935","\u002Fimages\u002Fblog\u002Fpyqt5\u002FPasted%20image%2020250829100935.png",[],{"type":19,"tag":20,"props":2343,"children":2344},{},[2345,2347,2352,2353,2359],{"type":24,"value":2346},"选中",{"type":19,"tag":27,"props":2348,"children":2350},{"className":2349},[],[2351],{"type":24,"value":1662},{"type":24,"value":2325},{"type":19,"tag":27,"props":2354,"children":2356},{"className":2355},[],[2357],{"type":24,"value":2358},"您选择的是 管理员 登录",{"type":24,"value":2333},{"type":19,"tag":20,"props":2361,"children":2362},{},[2363],{"type":19,"tag":917,"props":2364,"children":2367},{"alt":2365,"src":2366},"Pasted image 20250829100853","\u002Fimages\u002Fblog\u002Fpyqt5\u002FPasted%20image%2020250829100853.png",[],{"type":19,"tag":58,"props":2369,"children":2371},{"id":2370},"_5checkbox复选框",[2372,2374,2380],{"type":24,"value":2373},"5  ",{"type":19,"tag":27,"props":2375,"children":2377},{"className":2376},[],[2378],{"type":24,"value":2379},"CheckBox",{"type":24,"value":2381},"：复选框",{"type":19,"tag":72,"props":2383,"children":2384},{},[],{"type":19,"tag":20,"props":2386,"children":2387},{},[2388,2393,2395,2401],{"type":19,"tag":27,"props":2389,"children":2391},{"className":2390},[],[2392],{"type":24,"value":2379},{"type":24,"value":2394},"是复选框控件，它用来表示是否选取了某个选项条件，常用于为用户提供具有是\u002F否或真\u002F假值的选项，它对应PyQt5中的",{"type":19,"tag":27,"props":2396,"children":2398},{"className":2397},[],[2399],{"type":24,"value":2400},"QCheckBox",{"type":24,"value":1041},{"type":19,"tag":20,"props":2403,"children":2404},{},[2405,2410,2412,2417,2419,2425,2427,2433,2435,2441,2443,2449],{"type":19,"tag":27,"props":2406,"children":2408},{"className":2407},[],[2409],{"type":24,"value":2379},{"type":24,"value":2411},"控件的使用与",{"type":19,"tag":27,"props":2413,"children":2415},{"className":2414},[],[2416],{"type":24,"value":1484},{"type":24,"value":2418},"控件类似，但它是为用户提供",{"type":19,"tag":27,"props":2420,"children":2422},{"className":2421},[],[2423],{"type":24,"value":2424},"多选多",{"type":24,"value":2426},"的选择。另外，它除了选中和未选中两种状态之外，还提供了第三种状态：半选中。如果需要第三种状态，需要使用",{"type":19,"tag":27,"props":2428,"children":2430},{"className":2429},[],[2431],{"type":24,"value":2432},"QCheckBox类",{"type":24,"value":2434},"的",{"type":19,"tag":27,"props":2436,"children":2438},{"className":2437},[],[2439],{"type":24,"value":2440},"setTristate()方法",{"type":24,"value":2442},"使其生效，并且可以使用",{"type":19,"tag":27,"props":2444,"children":2446},{"className":2445},[],[2447],{"type":24,"value":2448},"checkState()方法",{"type":24,"value":2450},"查询当前状态。",{"type":19,"tag":20,"props":2452,"children":2453},{},[2454,2459],{"type":19,"tag":27,"props":2455,"children":2457},{"className":2456},[],[2458],{"type":24,"value":2379},{"type":24,"value":2460},"控件的三种状态值及说明如表所示。",{"type":19,"tag":119,"props":2462,"children":2463},{},[2464,2484],{"type":19,"tag":123,"props":2465,"children":2466},{},[2467],{"type":19,"tag":127,"props":2468,"children":2469},{},[2470,2477],{"type":19,"tag":131,"props":2471,"children":2472},{},[2473],{"type":19,"tag":93,"props":2474,"children":2475},{},[2476],{"type":24,"value":138},{"type":19,"tag":131,"props":2478,"children":2479},{},[2480],{"type":19,"tag":93,"props":2481,"children":2482},{},[2483],{"type":24,"value":146},{"type":19,"tag":148,"props":2485,"children":2486},{},[2487,2499,2512],{"type":19,"tag":127,"props":2488,"children":2489},{},[2490,2495],{"type":19,"tag":155,"props":2491,"children":2492},{},[2493],{"type":24,"value":2494},"QT.Checked()",{"type":19,"tag":155,"props":2496,"children":2497},{},[2498],{"type":24,"value":2346},{"type":19,"tag":127,"props":2500,"children":2501},{},[2502,2507],{"type":19,"tag":155,"props":2503,"children":2504},{},[2505],{"type":24,"value":2506},"QT.PartiallyChecked()",{"type":19,"tag":155,"props":2508,"children":2509},{},[2510],{"type":24,"value":2511},"半选中",{"type":19,"tag":127,"props":2513,"children":2514},{},[2515,2520],{"type":19,"tag":155,"props":2516,"children":2517},{},[2518],{"type":24,"value":2519},"QT.Unchecked()",{"type":19,"tag":155,"props":2521,"children":2522},{},[2523],{"type":24,"value":2524},"未选中",{"type":19,"tag":20,"props":2526,"children":2527},{},[2528,2533,2535,2541],{"type":19,"tag":27,"props":2529,"children":2531},{"className":2530},[],[2532],{"type":24,"value":2379},{"type":24,"value":2534},"控件最常用的信号是",{"type":19,"tag":27,"props":2536,"children":2538},{"className":2537},[],[2539],{"type":24,"value":2540},"stateChanged",{"type":24,"value":2542},"，用来在复选框的状态发生改变时发射。",{"type":19,"tag":20,"props":2544,"children":2545},{},[2546],{"type":19,"tag":93,"props":2547,"children":2548},{},[2549],{"type":24,"value":2550},"实例 设置用户权限",{"type":19,"tag":20,"props":2552,"children":2553},{},[2554,2556,2561,2563,2569,2571,2576,2578,2584,2586,2591,2593,2598,2600,2606,2608,2613],{"type":24,"value":2555},"在Qt Designer设计器中创建一个窗口，实现通过复选框的选中状态设置用户权限的功能。在窗口中添加5个",{"type":19,"tag":27,"props":2557,"children":2559},{"className":2558},[],[2560],{"type":24,"value":2379},{"type":24,"value":2562},"控件，文本分别设置为",{"type":19,"tag":27,"props":2564,"children":2566},{"className":2565},[],[2567],{"type":24,"value":2568},"基本信息管理、进货管理、销售管理、库存管理、系统管理",{"type":24,"value":2570},"，主要用来表示要设置的权限；添加一个",{"type":19,"tag":27,"props":2572,"children":2574},{"className":2573},[],[2575],{"type":24,"value":32},{"type":24,"value":2577},"控件，用来显示选择权限。设计完成后保存为",{"type":19,"tag":27,"props":2579,"children":2581},{"className":2580},[],[2582],{"type":24,"value":2583},".ui",{"type":24,"value":2585},"文件，并使用Pyuic工具将其转换为",{"type":19,"tag":27,"props":2587,"children":2589},{"className":2588},[],[2590],{"type":24,"value":891},{"type":24,"value":2592},"代码文件。在",{"type":19,"tag":27,"props":2594,"children":2596},{"className":2595},[],[2597],{"type":24,"value":891},{"type":24,"value":2599},"代码文件中自定义一个",{"type":19,"tag":27,"props":2601,"children":2603},{"className":2602},[],[2604],{"type":24,"value":2605},"getvalue()方法",{"type":24,"value":2607},"，用来根据",{"type":19,"tag":27,"props":2609,"children":2611},{"className":2610},[],[2612],{"type":24,"value":2379},{"type":24,"value":2614},"控件的选中状态记录相应的权限。代码如下：",{"type":19,"tag":292,"props":2616,"children":2618},{"code":2617,"language":295,"meta":7,"className":296,"style":7},"def getvalue(self):  \n    oper = \"\"  # 记录用户权限  \n    if self.checkBox.isChecked():  # 判断复选框是否选中  \n        oper += self.checkBox.text()  # 记录选中的权限  \n    if self.checkBox_2.isChecked():  \n        oper += '\\n' + self.checkBox_2.text()  \n    if self.checkBox_3.isChecked():  \n        oper += '\\n' + self.checkBox_3.text()  \n    if self.checkBox_4.isChecked():  \n        oper += '\\n' + self.checkBox_4.text()  \n    if self.checkBox_5.isChecked():  \n        oper += '\\n' + self.checkBox_5.text()  \n    from PyQt5.QtWidgets import QMessageBox  \n    # 使用information()方法弹出信息提示，显示所有选择的权限  \n    QMessageBox.information(MainWindow, \"提示\", \"您选择的权限如下：\\n\" + oper, QMessageBox.Ok)\n",[2619],{"type":19,"tag":27,"props":2620,"children":2621},{"__ignoreMap":7},[2622,2630,2638,2646,2654,2662,2670,2678,2686,2694,2702,2710,2718,2726,2734],{"type":19,"tag":302,"props":2623,"children":2624},{"class":304,"line":305},[2625],{"type":19,"tag":302,"props":2626,"children":2627},{},[2628],{"type":24,"value":2629},"def getvalue(self):  \n",{"type":19,"tag":302,"props":2631,"children":2632},{"class":304,"line":314},[2633],{"type":19,"tag":302,"props":2634,"children":2635},{},[2636],{"type":24,"value":2637},"    oper = \"\"  # 记录用户权限  \n",{"type":19,"tag":302,"props":2639,"children":2640},{"class":304,"line":323},[2641],{"type":19,"tag":302,"props":2642,"children":2643},{},[2644],{"type":24,"value":2645},"    if self.checkBox.isChecked():  # 判断复选框是否选中  \n",{"type":19,"tag":302,"props":2647,"children":2648},{"class":304,"line":332},[2649],{"type":19,"tag":302,"props":2650,"children":2651},{},[2652],{"type":24,"value":2653},"        oper += self.checkBox.text()  # 记录选中的权限  \n",{"type":19,"tag":302,"props":2655,"children":2656},{"class":304,"line":341},[2657],{"type":19,"tag":302,"props":2658,"children":2659},{},[2660],{"type":24,"value":2661},"    if self.checkBox_2.isChecked():  \n",{"type":19,"tag":302,"props":2663,"children":2664},{"class":304,"line":350},[2665],{"type":19,"tag":302,"props":2666,"children":2667},{},[2668],{"type":24,"value":2669},"        oper += '\\n' + self.checkBox_2.text()  \n",{"type":19,"tag":302,"props":2671,"children":2672},{"class":304,"line":359},[2673],{"type":19,"tag":302,"props":2674,"children":2675},{},[2676],{"type":24,"value":2677},"    if self.checkBox_3.isChecked():  \n",{"type":19,"tag":302,"props":2679,"children":2680},{"class":304,"line":368},[2681],{"type":19,"tag":302,"props":2682,"children":2683},{},[2684],{"type":24,"value":2685},"        oper += '\\n' + self.checkBox_3.text()  \n",{"type":19,"tag":302,"props":2687,"children":2688},{"class":304,"line":377},[2689],{"type":19,"tag":302,"props":2690,"children":2691},{},[2692],{"type":24,"value":2693},"    if self.checkBox_4.isChecked():  \n",{"type":19,"tag":302,"props":2695,"children":2696},{"class":304,"line":386},[2697],{"type":19,"tag":302,"props":2698,"children":2699},{},[2700],{"type":24,"value":2701},"        oper += '\\n' + self.checkBox_4.text()  \n",{"type":19,"tag":302,"props":2703,"children":2704},{"class":304,"line":395},[2705],{"type":19,"tag":302,"props":2706,"children":2707},{},[2708],{"type":24,"value":2709},"    if self.checkBox_5.isChecked():  \n",{"type":19,"tag":302,"props":2711,"children":2712},{"class":304,"line":404},[2713],{"type":19,"tag":302,"props":2714,"children":2715},{},[2716],{"type":24,"value":2717},"        oper += '\\n' + self.checkBox_5.text()  \n",{"type":19,"tag":302,"props":2719,"children":2720},{"class":304,"line":413},[2721],{"type":19,"tag":302,"props":2722,"children":2723},{},[2724],{"type":24,"value":2725},"    from PyQt5.QtWidgets import QMessageBox  \n",{"type":19,"tag":302,"props":2727,"children":2728},{"class":304,"line":422},[2729],{"type":19,"tag":302,"props":2730,"children":2731},{},[2732],{"type":24,"value":2733},"    # 使用information()方法弹出信息提示，显示所有选择的权限  \n",{"type":19,"tag":302,"props":2735,"children":2736},{"class":304,"line":431},[2737],{"type":19,"tag":302,"props":2738,"children":2739},{},[2740],{"type":24,"value":2741},"    QMessageBox.information(MainWindow, \"提示\", \"您选择的权限如下：\\n\" + oper, QMessageBox.Ok)\n",{"type":19,"tag":20,"props":2743,"children":2744},{},[2745,2747,2753,2755,2761,2762,2768],{"type":24,"value":2746},"将",{"type":19,"tag":27,"props":2748,"children":2750},{"className":2749},[],[2751],{"type":24,"value":2752},"设置",{"type":24,"value":2754},"按钮的",{"type":19,"tag":27,"props":2756,"children":2758},{"className":2757},[],[2759],{"type":24,"value":2760},"clicked信号",{"type":24,"value":1708},{"type":19,"tag":27,"props":2763,"children":2765},{"className":2764},[],[2766],{"type":24,"value":2767},"槽函数getvalue()",{"type":24,"value":2769},"相关联，代码如下：",{"type":19,"tag":292,"props":2771,"children":2773},{"code":2772,"language":295,"meta":7,"className":296,"style":7},"self.pushButton.clicked.connect(self.getvalue)\n",[2774],{"type":19,"tag":27,"props":2775,"children":2776},{"__ignoreMap":7},[2777],{"type":19,"tag":302,"props":2778,"children":2779},{"class":304,"line":305},[2780],{"type":19,"tag":302,"props":2781,"children":2782},{},[2783],{"type":24,"value":2772},{"type":19,"tag":20,"props":2785,"children":2786},{},[2787,2789,2794,2796,2801],{"type":24,"value":2788},"为",{"type":19,"tag":27,"props":2790,"children":2792},{"className":2791},[],[2793],{"type":24,"value":891},{"type":24,"value":2795},"文件添加程序入口，然后运行程序，选中相应权限的复选框，单击",{"type":19,"tag":27,"props":2797,"children":2799},{"className":2798},[],[2800],{"type":24,"value":2752},{"type":24,"value":2802},"按钮，即可在弹出提示框中显示用户选择的权限，如图所示。",{"type":19,"tag":20,"props":2804,"children":2805},{},[2806],{"type":19,"tag":917,"props":2807,"children":2810},{"alt":2808,"src":2809},"Pasted image 20250829102454","\u002Fimages\u002Fblog\u002Fpyqt5\u002FPasted%20image%2020250829102454.png",[],{"type":19,"tag":844,"props":2812,"children":2813},{},[2814],{"type":19,"tag":20,"props":2815,"children":2816},{},[2817,2821,2823,2828],{"type":19,"tag":93,"props":2818,"children":2819},{},[2820],{"type":24,"value":932},{"type":24,"value":2822}," 多学两招\n在设计用户权限或者考试系统中的多选题答案等功能时，可以使用",{"type":19,"tag":27,"props":2824,"children":2826},{"className":2825},[],[2827],{"type":24,"value":2379},{"type":24,"value":2829},"控件来实现。",{"type":19,"tag":2831,"props":2832,"children":2833},"style",{},[2834],{"type":24,"value":2835},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":7,"searchDepth":314,"depth":314,"links":2837},[2838,2840,2842,2844,2846],{"id":60,"depth":314,"text":2839},"1  PushButton：按钮",{"id":1002,"depth":314,"text":2841},"2  ToolButton：工具按钮",{"id":1354,"depth":314,"text":2843},"3  CommandLinkButton：命令链接按钮",{"id":1475,"depth":314,"text":2845},"4  RadioButton：单选按钮",{"id":2370,"depth":314,"text":2847},"5  CheckBox：复选框","markdown","content:blog:2025-08-24-pyqt5-按钮类控件.md","content","blog\u002F2025-08-24-pyqt5-按钮类控件.md","blog\u002F2025-08-24-pyqt5-按钮类控件","md",1780801018084]