|
|
QQ截图20170118004656.jpg
(18.91 KB, 下载次数: 0)
https://pan.baidu.com/s/1kVrz74j
- from PyQt5 import QtCore, QtGui, QtWidgets
- import random
- # UI部分
- class Ui_MainWindow(object):
- def setupUi(self, MainWindow):
- MainWindow.setObjectName("MainWindow")
- MainWindow.resize(451, 191)
- self.centralWidget = QtWidgets.QWidget(MainWindow)
- self.centralWidget.setObjectName("centralWidget")
- self.label_a = QtWidgets.QLabel(self.centralWidget)
- self.label_a.setGeometry(QtCore.QRect(20, 30, 71, 71))
- font = QtGui.QFont()
- font.setFamily("微软雅黑")
- font.setPointSize(26)
- self.label_a.setFont(font)
- self.label_a.setFrameShape(QtWidgets.QFrame.WinPanel)
- self.label_a.setTextFormat(QtCore.Qt.AutoText)
- self.label_a.setObjectName("label_a")
- self.label_b = QtWidgets.QLabel(self.centralWidget)
- self.label_b.setGeometry(QtCore.QRect(190, 30, 71, 71))
- font = QtGui.QFont()
- font.setFamily("微软雅黑")
- font.setPointSize(26)
- self.label_b.setFont(font)
- self.label_b.setFrameShape(QtWidgets.QFrame.WinPanel)
- self.label_b.setTextFormat(QtCore.Qt.AutoText)
- self.label_b.setObjectName("label_b")
- self.label_3 = QtWidgets.QLabel(self.centralWidget)
- self.label_3.setGeometry(QtCore.QRect(360, 30, 71, 71))
- self.label_3.setFrameShape(QtWidgets.QFrame.WinPanel)
- self.label_3.setText("")
- self.label_3.setTextFormat(QtCore.Qt.AutoText)
- self.label_3.setObjectName("label_3")
- self.label_4 = QtWidgets.QLabel(self.centralWidget)
- self.label_4.setGeometry(QtCore.QRect(125, 44, 41, 41))
- #self.label_4.setAlignment(QtCore.Qt.AlignCenter)
- font = QtGui.QFont()
- font.setFamily("微软雅黑")
- font.setPointSize(48)
- self.label_4.setFont(font)
- self.label_4.setObjectName("label_4")
- self.label_5 = QtWidgets.QLabel(self.centralWidget)
- self.label_5.setGeometry(QtCore.QRect(290, 50, 41, 31))
- font = QtGui.QFont()
- font.setFamily("微软雅黑")
- font.setPointSize(48)
- self.label_5.setFont(font)
- self.label_5.setObjectName("label_5")
- self.range_lineEdit = QtWidgets.QLineEdit(self.centralWidget)
- self.range_lineEdit.setGeometry(QtCore.QRect(20, 129, 41, 21))
- self.range_lineEdit.setCursorPosition(0)
- self.range_lineEdit.setObjectName("range_lineEdit")
- self.lineEdit_2 = QtWidgets.QLineEdit(self.centralWidget)
- self.lineEdit_2.setGeometry(QtCore.QRect(360, 29, 71, 71))
- font = QtGui.QFont()
- font.setFamily("微软雅黑")
- font.setPointSize(26)
- self.lineEdit_2.setFont(font)
- self.lineEdit_2.setCursorPosition(0)
- self.lineEdit_2.setObjectName("lineEdit_2")
- self.label_6 = QtWidgets.QLabel(self.centralWidget)
- self.label_6.setGeometry(QtCore.QRect(70, 130, 54, 21))
- self.label_6.setObjectName("label_6")
- self.check_btn = QtWidgets.QPushButton(self.centralWidget)
- self.check_btn.setGeometry(QtCore.QRect(350, 120, 81, 31))
- self.check_btn.setCheckable(True)
- self.check_btn.setObjectName("check_btn")
- self.next_btn = QtWidgets.QPushButton(self.centralWidget)
- self.next_btn.setGeometry(QtCore.QRect(250, 120, 81, 31))
- self.next_btn.setObjectName("next_btn")
- self.label = QtWidgets.QLabel(self.centralWidget)
- self.label.setEnabled(False)
- self.label.setGeometry(QtCore.QRect(160, 170, 131, 16))
- self.label.setObjectName("label")
- self.comboBox = QtWidgets.QComboBox(self.centralWidget)
- self.comboBox.setGeometry(QtCore.QRect(140, 131, 65, 21))
- self.comboBox.setObjectName("comboBox")
- self.comboBox.addItem("")
- self.comboBox.addItem("")
- self.comboBox.addItem("")
- self.comboBox.addItem("")
- MainWindow.setCentralWidget(self.centralWidget)
- self.retranslateUi(MainWindow)
- QtCore.QMetaObject.connectSlotsByName(MainWindow)
- def retranslateUi(self, MainWindow):
- _translate = QtCore.QCoreApplication.translate
- MainWindow.setWindowTitle(_translate("MainWindow", "神奇的加减法练习"))
- self.label_a.setText(_translate("MainWindow", "1"))
- self.label_b.setText(_translate("MainWindow", "1"))
- self.label_4.setText(_translate("MainWindow", "+"))
- self.label_5.setText(_translate("MainWindow", "="))
- self.range_lineEdit.setText(_translate("MainWindow", "20"))
- self.label_6.setText(_translate("MainWindow", "以内数字"))
- self.check_btn.setText(_translate("MainWindow", "验证结果"))
- self.next_btn.setText(_translate("MainWindow", "下一题"))
- self.label.setText(_translate("MainWindow", "来自热心的hostloc元老"))
- self.comboBox.setItemText(0, _translate("MainWindow", "加法 +"))
- self.comboBox.setItemText(1, _translate("MainWindow", "减法 -"))
- self.comboBox.setItemText(2, _translate("MainWindow", "乘法 ×"))
- self.comboBox.setItemText(3, _translate("MainWindow", "除法 ÷"))
- # 逻辑部分
- class Main(QtWidgets.QMainWindow, Ui_MainWindow):
- def __init__(self):
- super(Main, self).__init__()
- self.setupUi(self)
- self.get_nums()
- self.check_btn.clicked.connect(self.check)
- self.next_btn.clicked.connect(self.next)
- self.o = ['+','-','×','÷']
- self.comboBox.currentIndexChanged.connect(self.change_operator_label)
- print(self.comboBox.currentIndex())
- def change_operator_label(self):
- curr_index = self.comboBox.currentIndex()
- self.label_4.setText(self.o[curr_index])
- def get_nums(self):
- self.random_range = int(self.range_lineEdit.text()) # 获取设定的数值范围
- while True:
- self.a = random.choice(range(self.random_range))
- self.b = random.choice(range(self.random_range))
- if self.a - self.b > 0: # 设定运算结果非负数
- if self.b != 0: # 除法运算 被除数要求不为0
- break
- self.label_a.setText(str(self.a))
- self.label_b.setText(str(self.b))
- def check(self):
- result = self.lineEdit_2.text()
- o = self.comboBox.currentIndex()
- if o == 0:
- self.operator = '+'
- elif o == 1:
- self.operator = '-'
- elif o == 2:
- self.operator = '*'
- else:
- self.operator = '/'
- a = self.label_a.text()
- b = self.label_b.text()
- c = eval(a + self.operator + b)
- print(c)
- if result == str(c):
- QtWidgets.QMessageBox.information(self, '结果','回答正确!')
- else:
- QtWidgets.QMessageBox.information(self, '结果','回答错误!\n %s %s %s = %s' %(a, self.operator, b, c))
- self.get_nums() #刷新题目
- self.lineEdit_2.clear()
- self.lineEdit_2.setFocus() #设置输入框焦点
- def next(self):
- self.get_nums()
- if __name__ == "__main__":
- import sys
- app = QtWidgets.QApplication(sys.argv)
- main = Main()
- main.show()
- sys.exit(app.exec_())
复制代码
|
|