示例#1
0
class Ui_MainWindow(object):
    ## global varibales
    vowelButton_Times = 0
    timer = QTimer()
    workThread = WorkThread()
    c = []
    generatedWord = []
    number_answers = 0

    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(624, 680)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(134, 20, 361, 51))
        self.label.setMinimumSize(QtCore.QSize(361, 0))
        font = QtGui.QFont()
        font.setFamily("Monotype Corsiva")
        font.setPointSize(20)
        font.setBold(False)
        font.setItalic(True)
        font.setWeight(9)
        self.label.setFont(font)
        self.label.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
        self.label.setAutoFillBackground(False)
        self.label.setStyleSheet("font: 75 italic 20pt \"Monotype Corsiva\";")
        self.label.setScaledContents(False)
        self.label.setObjectName("label")
        self.groupBox = QtWidgets.QGroupBox(self.centralwidget)
        self.groupBox.setGeometry(QtCore.QRect(30, 90, 551, 141))
        self.groupBox.setObjectName("groupBox")
        self.horizontalLayoutWidget = QtWidgets.QWidget(self.groupBox)
        self.horizontalLayoutWidget.setGeometry(QtCore.QRect(0, 60, 551, 89))
        self.horizontalLayoutWidget.setObjectName("horizontalLayoutWidget")
        self.horizontalLayout = QtWidgets.QHBoxLayout(
            self.horizontalLayoutWidget)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.textBrowser_4 = QtWidgets.QTextBrowser(
            self.horizontalLayoutWidget)
        self.textBrowser_4.setObjectName("textBrowser_4")
        self.horizontalLayout.addWidget(self.textBrowser_4)
        self.textBrowser_8 = QtWidgets.QTextBrowser(
            self.horizontalLayoutWidget)
        self.textBrowser_8.setObjectName("textBrowser_8")
        self.horizontalLayout.addWidget(self.textBrowser_8)
        self.textBrowser_9 = QtWidgets.QTextBrowser(
            self.horizontalLayoutWidget)
        self.textBrowser_9.setObjectName("textBrowser_9")
        self.horizontalLayout.addWidget(self.textBrowser_9)
        self.textBrowser_6 = QtWidgets.QTextBrowser(
            self.horizontalLayoutWidget)
        self.textBrowser_6.setObjectName("textBrowser_6")
        self.horizontalLayout.addWidget(self.textBrowser_6)
        self.textBrowser_7 = QtWidgets.QTextBrowser(
            self.horizontalLayoutWidget)
        self.textBrowser_7.setObjectName("textBrowser_7")
        self.horizontalLayout.addWidget(self.textBrowser_7)
        self.textBrowser_5 = QtWidgets.QTextBrowser(
            self.horizontalLayoutWidget)
        self.textBrowser_5.setObjectName("textBrowser_5")
        self.horizontalLayout.addWidget(self.textBrowser_5)
        self.textBrowser_3 = QtWidgets.QTextBrowser(
            self.horizontalLayoutWidget)
        self.textBrowser_3.setObjectName("textBrowser_3")
        self.horizontalLayout.addWidget(self.textBrowser_3)
        self.textBrowser_2 = QtWidgets.QTextBrowser(
            self.horizontalLayoutWidget)
        self.textBrowser_2.setObjectName("textBrowser_2")
        self.horizontalLayout.addWidget(self.textBrowser_2)
        self.textBrowser = QtWidgets.QTextBrowser(self.horizontalLayoutWidget)
        self.textBrowser.setObjectName("textBrowser")
        self.horizontalLayout.addWidget(self.textBrowser)
        self.label_2 = QtWidgets.QLabel(self.horizontalLayoutWidget)
        self.label_2.setText("")
        self.label_2.setObjectName("label_2")
        self.horizontalLayout.addWidget(self.label_2)
        self.label_11 = QtWidgets.QLabel(self.groupBox)
        self.label_11.setGeometry(QtCore.QRect(10, 9, 491, 51))
        font = QtGui.QFont()
        font.setFamily("MS Shell Dlg 2")
        font.setPointSize(10)
        font.setBold(True)
        font.setItalic(True)
        font.setWeight(75)
        self.label_11.setFont(font)
        self.label_11.setStyleSheet("")
        self.label_11.setObjectName("label_11")
        self.frame = QtWidgets.QFrame(self.centralwidget)
        self.frame.setGeometry(QtCore.QRect(20, 80, 581, 541))
        self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame.setObjectName("frame")

        ## click button to input vowels
        self.pushButton = QtWidgets.QPushButton(self.frame)
        self.pushButton.setGeometry(QtCore.QRect(10, 170, 161, 28))
        font = QtGui.QFont()
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.pushButton.setFont(font)
        self.pushButton.setObjectName("pushButton")
        self.pushButton.clicked.connect(self.input)

        ##
        ## click button to input consonants
        self.pushButton_2 = QtWidgets.QPushButton(self.frame)
        self.pushButton_2.setGeometry(QtCore.QRect(200, 170, 161, 28))
        font = QtGui.QFont()
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.pushButton_2.setFont(font)
        self.pushButton_2.setObjectName("pushButton_2")
        self.pushButton_2.clicked.connect(self.input1)

        ##Countdown function
        ## click start
        self.lcdNumber = QtWidgets.QLCDNumber(self.frame)
        self.lcdNumber.setGeometry(QtCore.QRect(400, 160, 101, 51))
        self.lcdNumber.setSmallDecimalPoint(True)
        self.lcdNumber.setDigitCount(5)
        self.lcdNumber.setMode(QtWidgets.QLCDNumber.Dec)
        self.lcdNumber.setSegmentStyle(QtWidgets.QLCDNumber.Flat)
        self.lcdNumber.setObjectName("lcdNumber")
        self.timer.timeout.connect(self.countTime)

        ## groupBox _2
        self.groupBox_2 = QtWidgets.QGroupBox(self.frame)
        self.groupBox_2.setGeometry(QtCore.QRect(10, 210, 561, 321))
        self.groupBox_2.setObjectName("groupBox_2")
        self.horizontalLayoutWidget_2 = QtWidgets.QWidget(self.groupBox_2)
        self.horizontalLayoutWidget_2.setGeometry(QtCore.QRect(
            0, 60, 551, 171))
        self.horizontalLayoutWidget_2.setObjectName("horizontalLayoutWidget_2")
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout(
            self.horizontalLayoutWidget_2)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.label_12 = QtWidgets.QLabel(self.groupBox_2)
        self.label_12.setGeometry(QtCore.QRect(4, 10, 541, 41))
        font = QtGui.QFont()
        font.setPointSize(10)
        font.setBold(True)
        font.setItalic(True)
        font.setWeight(75)
        self.label_12.setFont(font)
        self.label_12.setObjectName("label_12")

        ##Submit button in the bottle of frame

        self.pushButton_3 = QtWidgets.QPushButton(self.groupBox_2)
        self.pushButton_3.setGeometry(QtCore.QRect(170, 260, 171, 51))
        font = QtGui.QFont()
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.pushButton_3.setFont(font)
        self.pushButton_3.setObjectName("pushButton_3")
        self.pushButton_3.clicked.connect(self.Answer_Game)

        ## show answers
        self.textBrowser_10 = QtWidgets.QTextBrowser(self.groupBox_2)
        self.textBrowser_10.setGeometry(QtCore.QRect(0, 60, 561, 171))
        self.textBrowser_10.setObjectName("textBrowser_10")

        self.textEdit = QtWidgets.QTextEdit(self.groupBox_2)
        self.textEdit.setGeometry(QtCore.QRect(493, 20, 61, 31))
        self.textEdit.setObjectName("textEdit")
        self.label_4 = QtWidgets.QLabel(self.groupBox_2)
        self.label_4.setGeometry(QtCore.QRect(380, 20, 111, 31))
        self.label_4.setObjectName("label_4")
        self.textEdit_2 = QtWidgets.QTextEdit(self.groupBox_2)
        self.textEdit_2.setGeometry(QtCore.QRect(240, 20, 111, 31))
        self.textEdit_2.setObjectName("textEdit_2")
        self.label_3 = QtWidgets.QLabel(self.groupBox_2)
        self.label_3.setGeometry(QtCore.QRect(140, 25, 91, 21))
        self.label_3.setObjectName("label_3")

        ## pushbutton_4 is a button to control countdown function
        self.pushButton_4 = QtWidgets.QPushButton(self.frame)
        self.pushButton_4.setGeometry(QtCore.QRect(520, 160, 51, 51))
        self.pushButton_4.setObjectName("pushButton_4")
        self.pushButton_4.clicked.connect(self.work)

        ## reset
        self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_5.setGeometry(QtCore.QRect(490, 20, 93, 51))
        self.pushButton_5.setObjectName("pushButton_5")
        self.pushButton_5.clicked.connect(self.reset)
        self.frame.raise_()
        self.label.raise_()
        self.groupBox.raise_()
        self.pushButton_5.raise_()
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 624, 26))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.label.setText(_translate("MainWindow", "Countdown Word Game"))
        self.groupBox.setTitle(_translate("MainWindow", "GroupBox"))
        self.label_11.setText(
            _translate("MainWindow", "Please press Button to input letter :"))
        self.pushButton.setText(_translate("MainWindow", "Vowels"))
        self.pushButton_2.setText(_translate("MainWindow", "Consonants"))
        self.groupBox_2.setTitle(
            _translate(
                "MainWindow",
                "-------------------------------------------------------------------------------------------------------------"
            ))
        self.label_12.setText(_translate("MainWindow", "Answers"))
        self.pushButton_3.setText(_translate("MainWindow", "Submit"))
        self.label_3.setText(_translate("MainWindow", "input answer : "))
        self.label_4.setText(_translate("MainWindow", "length of answer :"))
        self.pushButton_4.setText(_translate("MainWindow", "Start"))
        self.pushButton_5.setText(_translate("MainWindow", "Reset"))

##Function to Generate Vowels

    def input(self):
        if self.vowelButton_Times == 0:

            number = inputLetter.vowel()
            self.generatedWord.append(number)
            self.textBrowser_4.setText(number)
    #     print(self.generatedWord)
        elif self.vowelButton_Times == 1:
            number = inputLetter.vowel()
            self.generatedWord.append(number)
            self.textBrowser_8.setText(number)
        #    print(self.generatedWord)
        elif self.vowelButton_Times == 2:
            number = inputLetter.vowel()
            self.generatedWord.append(number)
            self.textBrowser_9.setText(number)
        elif self.vowelButton_Times == 3:
            number = inputLetter.vowel()
            self.generatedWord.append(number)
            self.textBrowser_6.setText(number)
        elif self.vowelButton_Times == 4:
            number = inputLetter.vowel()
            self.generatedWord.append(number)
            self.textBrowser_7.setText(number)
        elif self.vowelButton_Times == 5:
            number = inputLetter.vowel()
            self.generatedWord.append(number)
            self.textBrowser_5.setText(number)
        elif self.vowelButton_Times == 6:
            number = inputLetter.vowel()
            self.generatedWord.append(number)
            self.textBrowser_3.setText(number)
        elif self.vowelButton_Times == 7:
            number = inputLetter.vowel()
            self.generatedWord.append(number)
            self.textBrowser_2.setText(number)
        elif self.vowelButton_Times == 8:
            number = inputLetter.vowel()
            self.generatedWord.append(number)
            self.textBrowser.setText(number)
            self.work()
        else:
            self.pushButton.clicked.connect(self.msg)
        self.vowelButton_Times = self.vowelButton_Times + 1

    #  print(self.vowelButton_Times)

## Function to Generate  Consonants

    def input1(self):
        # print(self.vowelButton_Times)
        # print("-----------")
        if self.vowelButton_Times == 0:
            #  self.work()
            number = inputLetter.con()
            print(number)
            self.generatedWord.append(number)
            self.textBrowser_4.setText(number)
        elif self.vowelButton_Times == 1:
            number = inputLetter.con()
            self.generatedWord.append(number)
            self.textBrowser_8.setText(number)
        elif self.vowelButton_Times == 2:
            number = inputLetter.con()
            self.generatedWord.append(number)
            self.textBrowser_9.setText(number)
        elif self.vowelButton_Times == 3:
            number = inputLetter.con()
            self.generatedWord.append(number)
            self.textBrowser_6.setText(number)
        elif self.vowelButton_Times == 4:
            number = inputLetter.con()
            self.generatedWord.append(number)
            self.textBrowser_7.setText(number)
        elif self.vowelButton_Times == 5:
            number = inputLetter.con()
            self.generatedWord.append(number)
            self.textBrowser_5.setText(number)
        elif self.vowelButton_Times == 6:
            number = inputLetter.con()
            self.generatedWord.append(number)
            self.textBrowser_3.setText(number)
        elif self.vowelButton_Times == 7:
            number = inputLetter.con()
            self.generatedWord.append(number)
            self.textBrowser_2.setText(number)
        elif self.vowelButton_Times == 8:
            number = inputLetter.con()
            self.generatedWord.append(number)
            self.textBrowser.setText(number)
            self.work()
        else:
            self.pushButton_2.clicked.connect(self.msg)
        self.vowelButton_Times = self.vowelButton_Times + 1

    #  print(self.vowelButton_Times)

    def msg(self):
        reply = QMessageBox.information(QtWidgets.QWidget(), "Warning",
                                        "out of range",
                                        QMessageBox.Yes | QMessageBox.No)

##Generate Answer in a other window

    def getGeneratedWord(self):
        self.generatedWord = self.generatedWord
        print(self.generatedWord)

    def Answer_Game(self):
        print(self.generatedWord)
        print("!!!!!!!")
        findWordFromDic.set_input_word(self.generatedWord)
        print(self.generatedWord)
        print('------')

        ## get content(wordlength  and input word ) from textEdit and textEdit_2
        wordlen = self.textEdit.toPlainText()
        input = self.textEdit_2.toPlainText()

        ##get infor[] from findWordFromDic
        c = findWordFromDic.infor
        number_answers = 0

        ##set cc
        cc = []

        if wordlen == '':
            wordlen = 5
        if input == '':
            self.input = ''

        for i in c:
            if len(i) >= int(wordlen):
                cc.append(i)
                self.textBrowser_10.append(i)
                number_answers = number_answers + 1
        if number_answers == 0:
            self.textBrowser_10.append('No answer')

        if str(input) in cc:
            reply = QMessageBox.information(
                QtWidgets.QWidget(), "Congraulation",
                "Time : spend " + str(sec) + "seconds to get answer",
                QMessageBox.Yes | QMessageBox.No)
        else:
            reply = QMessageBox.information(
                QtWidgets.QWidget(), "Sorry",
                "Time : spend " + str(sec) + "seconds ",
                QMessageBox.Yes | QMessageBox.No)

## Function of Countdown

    def countTime(self):
        global sec
        sec += 1
        self.lcdNumber.display(sec)  #LED显示数字+1

    def work(self):
        self.timer.start(1000)  #计时器每秒计数
        self.workThread.start()  #计时开始
        self.workThread.trigger.connect(self.timeStop)  #当获得循环完毕的信号时,停止计数

    def timeStop(self):
        self.timer.stop()
        print("END", self.lcdNumber.value())
        global sec
        sec = 0

    def reset(self):
        # self.textBrowser.de(1.0, END)
        #  self.textBrowser.clear()
        #  self.textBrowser.setText('')
        global generatedWord
        self.generatedWord = None
        self.generatedWord = []
        global sec
        sec = 0
        self.vowelButton_Times = 0
        global c
        self.c = []
        self.timeStop()
        self.number_answers = 0
        self.textBrowser.clear()
        self.textBrowser_2.clear()
        self.textBrowser_3.clear()
        self.textBrowser_4.clear()
        self.textBrowser_5.clear()
        self.textBrowser_6.clear()
        self.textBrowser_7.clear()
        self.textBrowser_8.clear()
        self.textBrowser_9.clear()
        self.textBrowser_10.clear()