用QT写的一个小程序

来源:互联网 发布:北大青鸟网络培训 编辑:程序博客网 时间:2024/04/28 18:35
import sysfrom PyQt4 import QtGuiimport randomInfo=["欢迎使用上机答题系统,开始答题:" ,    "当前是第 " ,    " 题,您还有 " ,    " 次机会:" ,    "您的回答错误,请继续尝试.." ,    "您的总得分是 : " ];resultInfo = [ 'SMART' ,'GOOD' ,'OK' ,'PASS' ,'TRY AGAIN'];class Sunyuqiang(QtGui.QWidget):    def __init__(self):        super(Sunyuqiang, self).__init__()        self.center()        self.initUI()    def initUI(self):        self.resize(400, 150)        self.setWindowTitle('小学生测验')        self.btn = QtGui.QPushButton('题目', self)        self.btn.resize(60,25)        self.btn.move(50, 50)        self.ans = QtGui.QLineEdit(self)        self.ans.resize(300, 25)        self.ans.move(50, 20)        self.le = QtGui.QLineEdit(self)        self.le.resize(200,25)        self.le.move(150, 50)        self.btn = QtGui.QPushButton('提示', self)        self.btn.resize(60, 25)        self.btn.move(50, 80)        self.req = QtGui.QLineEdit(self)        self.req.resize(200, 25)        self.req.move(150, 80)        self.req = QtGui.QLineEdit(self)        self.req.resize(200, 25)        self.req.move(150, 80)        self.btn = QtGui.QPushButton('评价', self)        self.btn.resize(60, 25)        self.btn.move(50, 110)        self.sco = QtGui.QLineEdit(self)        self.sco.resize(200, 25)        self.sco.move(150, 110)        self.show()        self.showQuestionDialog()    def closeEvent(self, event):        reply = QtGui.QMessageBox.question(self, '是否退出',            "Are you sure to quit?", QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)        if reply == QtGui.QMessageBox.Yes:            event.accept()        else:            event.ignore()    def showDialog(self,question):        text, ok = QtGui.QInputDialog.getText(self, question, '输入你的答案:')        return text    def center(self):        screen = QtGui.QDesktopWidget().screenGeometry()        size =  self.geometry()        self.move((screen.width()-size.width())/2, (screen.height()-size.height())/2)    def showQuestionDialog(self):        print(Info[0])        sum = 0        for i in range(0, 10):            while 1:                x1 = random.randrange(0, 51, 1)                x2 = random.randrange(0, 51, 1)                if x1 + x2 <= 50 and x1 - x2 >= 0:                    break            res = 0            question = " "            flag = random.choice("+-")            if str(flag) == "+":                res = x1 + x2                question = str(x1) + '+' + str(x2) + '=' + '?'                self.le.setText(str(question))                for tryTime in [3, 2, 1]:                    self.ans.setText(Info[1] + str(i + 1) + Info[2] + str(tryTime) + Info[3])                    x=self.showDialog(question)                    if x=='exit:':                        return                    if x != str(res):                        self.req.setText(Info[4])                        if tryTime==1:                            self.req.setText(question+'正确答案:' + str(res))                    if x == str(res) and tryTime == 3:                        sum = sum + 10                        self.req.setText('回答正确')                        break                    if x == str(res) and tryTime == 2:                        sum = sum + 7                        self.req.setText('回答正确')                        break                    if x == str(res) and tryTime == 1:                        sum = sum + 5                        self.req.setText('回答正确')                        break            else:                res = x1 - x2                question = str(x1) + '-' + str(x2) + '=' + '?'                self.le.setText(str(question))                for tryTime in [3, 2, 1]:                    self.ans.setText(Info[1] + str(i + 1) + Info[2] + str(tryTime) + Info[3])                    x=self.showDialog(question)                    if x=='exit:':                        return                    if x != str(res):                        self.req.setText(Info[4])                        if tryTime==1:                            self.req.setText(question+'正确答案:' + str(res))                    if x == str(res) and tryTime == 3:                        sum = sum + 10                        self.req.setText('回答正确')                        break                    if x == str(res) and tryTime == 2:                        sum = sum + 7                        self.req.setText('回答正确')                        break                    if x == str(res) and tryTime == 1:                        sum = sum + 5                        self.req.setText('回答正确')                        break        print('检测结束')        print(Info[5] + str(sum))        if sum >= 90:            self.sco.setText(str(sum)+'分'+'您的评价为' + resultInfo[0])        if sum < 90 and sum >= 80:            self.sco.setText(str(sum)+'分'+'您的评价为' + resultInfo[1])        if sum < 80 and sum >= 70:            self.sco.setText(str(sum)+'分'+'您的评价为' + resultInfo[2])        if sum < 70 and sum >= 60:            self.sco.setText(str(sum)+'分'+'您的评价为' + resultInfo[3])        if sum < 60:            self.sco.setText(str(sum)+'分'+'您的评价为' + resultInfo[4])def main():    app = QtGui.QApplication(sys.argv)    syq = Sunyuqiang()    sys.exit(app.exec_())if __name__ == '__main__':    main()