我有一个简单的python QT乘法程序。有3个字段,第一个随机数(只读),第二个随机数(只读)和第三行编辑,供用户输入结果。如果first * second = result,则显示Right Label,否则显示Wrong Label。我想用再次播放按钮替换退出按钮,所以当用户按下它时,重新生成随机数并清除所有结果标签,用户再试一次。
try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: def _fromUtf8(s): return s try: _encoding = QtGui.QApplication.UnicodeUTF8 def _translate(context, text, disambig): return QtGui.QApplication.translate(context, text, disambig, _encoding) except AttributeError: def _translate(context, text, disambig): return QtGui.QApplication.translate(context, text, disambig) class Ui_Form(object): def setupUi(self, Form): Form.setObjectName(_fromUtf8("Form")) Form.resize(650, 644) self.label_71 = QtGui.QLabel(Form) self.label_71.setGeometry(QtCore.QRect(70, 20, 481, 41)) font = QtGui.QFont() font.setFamily(_fromUtf8("Andika")) font.setPointSize(26) self.label_71.setFont(font) self.label_71.setObjectName(_fromUtf8("label_71")) self.layoutWidget = QtGui.QWidget(Form) self.layoutWidget.setGeometry(QtCore.QRect(200, 570, 221, 29)) self.layoutWidget.setObjectName(_fromUtf8("layoutWidget")) self.horizontalLayout_51 = QtGui.QHBoxLayout(self.layoutWidget) self.horizontalLayout_51.setMargin(0) self.horizontalLayout_51.setObjectName(_fromUtf8("horizontalLayout_51")) self.pushButton_2 = QtGui.QPushButton(self.layoutWidget) self.pushButton_2.setObjectName(_fromUtf8("pushButton_2")) self.pushButton_2.clicked.connect(self.exit_) self.horizontalLayout_51.addWidget(self.pushButton_2) self.pushButton = QtGui.QPushButton(self.layoutWidget) font = QtGui.QFont() font.setBold(True) font.setWeight(75) self.pushButton.setFont(font) self.pushButton.setObjectName(_fromUtf8("pushButton")) self.pushButton.clicked.connect(self.praxis) self.horizontalLayout_51.addWidget(self.pushButton) ### Line Edit 1 - 2 ### self.count = 124 self.list_x1 = [] self.list_y1 = [] for i in range(10): self.x1 = randint(2,9) self.list_x1.append(self.x1) self.ln1 = "self.lineEdit1_" + str(i) self.ln1 = QtGui.QLineEdit(Form) self.ln1.setText(str(self.x1)) self.ln1.setReadOnly(True) self.ln1.setGeometry(QtCore.QRect(74, self.count, 40, 26)) self.ln1.setAlignment(QtCore.Qt.AlignCenter) self.ln1.setObjectName(_fromUtf8("lineEdit")) self.y1 = randint(2,9) self.list_y1.append(self.y1) self.ln2 = "self.lineEdit2_" + str(i) self.ln2 = QtGui.QLineEdit(Form) self.ln2.setText(str(self.y1)) self.ln2.setReadOnly(True) self.ln2.setGeometry(QtCore.QRect(140, self.count, 40, 26)) self.ln2.setAlignment(QtCore.Qt.AlignCenter) self.ln2.setObjectName(_fromUtf8("lineEdit_2")) self.count += 35 #Εισαγωγή 1ης στήλης self.count = 124 self.ln3_value = [] for i in range(10): self.ln3 = "self.lineEdit3_" + str(i) self.ln3_value.append(self.ln3) self.ln3_value[i] = QtGui.QLineEdit(Form) self.ln3_value[i].setGeometry(QtCore.QRect(206, self.count, 40, 26)) self.ln3_value[i].setAlignment(QtCore.Qt.AlignCenter) self.ln3_value[i].setObjectName(_fromUtf8("lineEdit_3")) self.count += 35 ### Line Edit 3- 4 ### self.count = 124 self.list_x2 = [] self.list_y2 = [] for i in range(10): self.x2 = randint(2,9) self.list_x2.append(self.x2) self.ln4 = "self.lineEdit4_" + str(i) self.ln4 = QtGui.QLineEdit(Form) self.ln4.setText(str(self.x2)) self.ln4.setReadOnly(True) self.ln4.setGeometry(QtCore.QRect(348, self.count, 40, 26)) self.ln4.setAlignment(QtCore.Qt.AlignCenter) self.ln4.setObjectName(_fromUtf8("lineEdit_4")) self.y2 = randint(2,9) self.list_y2.append(self.y2) self.ln5 = "self.lineEdit5_" + str(i) self.ln5 = QtGui.QLineEdit(Form) self.ln5.setText(str(self.y2)) self.ln5.setReadOnly(True) self.ln5.setGeometry(QtCore.QRect(414, self.count, 40, 26)) self.ln5.setAlignment(QtCore.Qt.AlignCenter) self.ln5.setObjectName(_fromUtf8("lineEdit_5")) self.count += 35 #Εισαγωγή 2ης στήλης self.count = 124 self.ln6_value = [] for i in range(10): self.ln6 = "self.lineEdit5_" + str(i) self.ln6_value.append(self.ln3) self.ln6_value[i] = QtGui.QLineEdit(Form) self.ln6_value[i].setGeometry(QtCore.QRect(480, self.count, 40, 26)) self.ln6_value[i].setAlignment(QtCore.Qt.AlignCenter) self.ln6_value[i].setObjectName(_fromUtf8("lineEdit_6")) self.count += 35 ### / Line Edit 1 - 4 ### ### Labels 1 - 6 ### self.lbl1_count = 119 for i in range(10): self.lbl_1 = "self.label1_" + str(i) self.lbl_1 = QtGui.QLabel(Form) self.lbl_1.setGeometry(QtCore.QRect(120, self.lbl1_count, 14, 34)) self.lbl_1.setText(_translate("Form", "X", None)) font = QtGui.QFont() font.setFamily(_fromUtf8("Andika")) font.setPointSize(16) self.lbl_1.setFont(font) self.lbl_1.setObjectName(_fromUtf8("label")) self.lbl1_count += 35 self.lbl2_count = 119 for i in range(10): self.lbl_2 = "self.label2_" + str(i) self.lbl_2 = QtGui.QLabel(Form) self.lbl_2.setGeometry(QtCore.QRect(186, self.lbl2_count, 14, 34)) self.lbl_2.setText(_translate("Form", "=", None)) font = QtGui.QFont() font.setFamily(_fromUtf8("Andika")) font.setPointSize(16) self.lbl_2.setFont(font) self.lbl_2.setObjectName(_fromUtf8("label_2")) self.lbl2_count += 35 self.lbl3_list = [] self.lbl3_count = 119 for i in range(10): self.lbl_3 = "self.label3_" + str(i) self.lbl3_list.append(self.lbl_3) self.lbl3_list[i] = QtGui.QLabel(Form) self.lbl3_list[i].setGeometry(QtCore.QRect(252, self.lbl3_count, 80, 34)) self.lbl3_list[i].setText(_translate("Form", "?", None)) font = QtGui.QFont() font.setFamily(_fromUtf8("Andika")) font.setPointSize(14) self.lbl3_list[i].setFont(font) self.lbl3_list[i].setObjectName(_fromUtf8("label_3")) self.lbl3_count += 35 self.lbl4_count = 119 for i in range(10): self.lbl_4 = "self.label2_" + str(i) self.lbl_4 = QtGui.QLabel(Form) self.lbl_4.setGeometry(QtCore.QRect(394, self.lbl4_count, 14, 34)) self.lbl_4.setText(_translate("Form", "X", None)) font = QtGui.QFont() font.setFamily(_fromUtf8("Andika")) font.setPointSize(16) self.lbl_4.setFont(font) self.lbl_4.setObjectName(_fromUtf8("label_2")) self.lbl4_count += 35 self.lbl5_count = 119 for i in range(10): self.lbl_5 = "self.label5_" + str(i) self.lbl_5 = QtGui.QLabel(Form) self.lbl_5.setGeometry(QtCore.QRect(460, self.lbl5_count, 14, 34)) self.lbl_5.setText(_translate("Form", "=", None)) font = QtGui.QFont() font.setFamily(_fromUtf8("Andika")) font.setPointSize(16) self.lbl_5.setFont(font) self.lbl_5.setObjectName(_fromUtf8("label_5")) self.lbl5_count += 35 self.lbl6_list = [] self.lbl6_count = 119 for i in range(10): self.lbl_6 = "self.label6_" + str(i) self.lbl6_list.append(self.lbl_6) self.lbl6_list[i] = QtGui.QLabel(Form) self.lbl6_list[i].setGeometry(QtCore.QRect(526, self.lbl6_count, 80, 34)) self.lbl6_list[i].setText(_translate("Form", "?", None)) font = QtGui.QFont() font.setFamily(_fromUtf8("Andika")) font.setPointSize(14) self.lbl6_list[i].setFont(font) self.lbl6_list[i].setObjectName(_fromUtf8("label_6")) self.lbl6_count += 35 ### / Labels 1 - 6 ### self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form): Form.setWindowTitle(_translate("Form", "Multiplication", None)) self.label_71.setText(_translate("Form", "Multiplication", None)) self.pushButton_2.setText(_translate("Form", "Exit", None)) self.pushButton.setText(_translate("Form", "Check", None)) def praxis(self): self.lbl3_count = 119 for i in range(10): self.val = self.ln3_value[i] self.val2 = self.ln6_value[i] self.get_val = self.val.text() self.get_val2 = self.val2.text() self.get_val_str = str(self.get_val) self.get_val2_str = str(self.get_val2) self.summary = self.list_y1[i] * self.list_x1[i] self.summary2 = self.list_y2[i] * self.list_x2[i] self.summary_int = str(self.summary) self.summary_int2 = str(self.summary2) if self.summary_int == self.get_val_str: self.lbl3_list[i].setText(_translate("Form", "Σωστό!", None)) self.lbl3_list[i].setStyleSheet('color: green') else: self.lbl3_list[i].setText(_translate("Form", "Λάθος!", None)) self.lbl3_list[i].setStyleSheet('color: red') if self.summary_int2 == self.get_val2_str: self.lbl6_list[i].setText(_translate("Form", "Σωστό!", None)) self.lbl6_list[i].setStyleSheet('color: green') else: self.lbl6_list[i].setText(_translate("Form", "Λάθος!", None)) self.lbl6_list[i].setStyleSheet('color: red') def exit_(self): import sys sys.exit() if __name__ == "__main__": import sys app = QtGui.QApplication(sys.argv) Form = QtGui.QWidget() ui = Ui_Form() ui.setupUi(Form) Form.show() sys.exit(app.exec_())