用户:星空牧场查看:6 回复:12 评论:6 创建时间:2020-06-22T17:47:22
一大主题:解密许多年来成语网站收费背后的坑,今天编程透明实现!
四大专利:
1.双t第三方库,带你可视化学习!
2.time标准库,用户节奏自行调整
3.炫酷效果全带领!解决布局问题,编程kill掉异常问题!
4.作品开源,评论区点赞关注后留言666,加作者喵号领取程序源代码!
评论区点赞关注后留言666,领取程序源代码!
千从import random
import sys
from PySide2.QtWidgets import *
from PySide2.QtCore import*
from ui_mainwindow import Ui_mainwindow
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.verity)
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.strip().split("\n")
for word in words:
meaning, word = word.split(":")
self.words[meaning.strip()] = word.strip()
#回答正确数量
self.correct_count = 0
#单词总数
self.words_count = len(self.words)
self.get_question()
except:
QMessageBox.warning(self, "注意", "内容为空或者格式有误,请重新选择单词文件")
def get_question(self):
if len(self.words) == 0:
QMessageBox.information(self, "", "背单词结束,单词总数{}个,回答正确{}个".format(
self.words_count, self.correct_count))
self.lb_file_path.setText("")
self.lb_question.setText("")
self.word = ""
self.words = {}
else:
#随机抽取待背的单词作为问题
self.meaning = random.choice(list(self.words.keys()))
#记录对应的答案
self.word = self.words.pop(self.meaning)
#标签上显示问题
self.lb_question.setText(self.meaning)
def verity(self):
if self.word:
#获取文本输入框的内容
answer = self.le_answer.text()
if answer == "":
QMessageBox.warning(self, "注意", "请输入你的回答")
elif answer == self.word:
QMessageBox.warning(self, "", "回答正确")
#每次正确值加1
self.correct_count += 1
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.verity()
if __name__ == "__main__":
app = QApplication(sys.argv)
window = Word()
sys.exit(app.exec_())
我的代码和这个效果很像
点赞2
评论