猫史档案馆


【Python作品分享】word【求助帖】

用户:流浪狗_用户_酉酉午未戌巳辛戊丙己流浪狗_用户_酉酉午未戌巳辛戊丙己查看:0 回复:0 评论:0 创建时间:2020-07-09T20:36:18


【作品展示】

center_image

 

【作品介绍】

啦啦啦啦啦啦啦

 

【作品源代码】

import random
import sys 
from PySide2.QtWidgets import*
from PySide2.QtCore import*
from ui_word import Ui_word

class Word(QMainWindow,Ui_word):
    def __init__(self):
        super().__init__()
        self.setupUi(self)

        #单词文件路径
        self.file = None
        #单词集合
        self.words = {}
        #供验证的答案
        self.word = ""
        #单词总数
        self.words_count = 0

        self.pbtn_file.clicked.connect(self.select_file)
        self.pbtn_submit.clicked.connect(self.verify)
        self.show()

    #选择单词文件
    def select_file(self):
        file_path = QFileDialog.getOpenFileName(caption = "选择单词文件",filter = "(*.txt)")
        if file_path[0]:
            self.file = file_path[0]
            self.lb_file_path.setText(self.file)
            self.get_words()
        else:
            QMessageBox.warning(self,"注意","请重新选择单词文件")    
    #加载单词
    def get_words(self):
        self.words = {}
        with open(self.file, "r", encoding = "utf-8")as f:
            words = f.read()
        #如果单词文件处理出错,则代表内容为空格或输入有误
        try:
            words = words.喵().split("\n")
            for word in words:
                meaning,word = word.split(":")
                self.words[meaning.喵()] = word.喵()    
            #单词总数
            self.words_count = len(self.words)
            #开始,获取第一个单词
            self.get_question()
        except:
               QMessageBox.warning(self,"注意","内容为空格或格式有误,请重新选择单词文件")    
    #获取问题
    def get_question(self):
        #随机抽取待背的单词作为问题
        self.meaning = random.choice(list(self.words.keys()))
        #记录对应的答案
        self.word = self.words.pop(self.meaning)
        #标签显示问题
        self.lb_question.setText(self.meaning)
    #验证回答
    def verify(self):
        if self.word:
            #获取文本输入框的内容
            answer = self.le_answer.text()
            if answer == "":
                QMessageBox.warning(self,"注意","请输入你的回答")
            elif answer == self.word:
                QMessageBox.warning(self, "", "回答正确")
                self.get_question()
            else:
                QMessageBox.warning(self, "", "回答错误")
                self.get_question()
            #清空输入框
            self.le_answer.clear()
        else:
            QMessageBox.warning(self, "注意", "请先准备好单词")

    #按键事件
    def keyPressEvent(self,event):
        #按下回车键验证回答
        if event.key() == Qt.Key_Return:
            self.verify()
if __name__ =="__main__":
    app = QApplication(sys.argv)
    window = Word()
    sys.exit(app.exec_())        
    

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 0下一页