用Python和PYQT5写一个“背单词神器”

编程入门 行业动态 更新时间:2024-10-10 06:14:13

用Python和PYQT5写一个“背单词<a href=https://www.elefans.com/category/jswz/34/1765229.html style=神器”"/>

用Python和PYQT5写一个“背单词神器”

安装Pyqt5

①pip install PyQt5

②需要安装Qt工具,也选择pip安装:

pip install PyQt5-tools

主程序

import sys
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QApplication, QMainWindowimport recitif __name__ == '__main__':app = QtWidgets.QApplication(sys.argv)MainWindow = QMainWindow()ui = recit.Ui_heheda()ui.setupUi(MainWindow)MainWindow.show()sys.exit(app.exec_())

recit.py文件

# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'untitled.ui'
#
# Created by: PyQt5 UI code generator 5.14.1
#
# WARNING! All changes made in this file will be lost!from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import QCoreApplication
from PyQt5.Qt import *
########背景设置##########
# encoding:utf-8
import sys
from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
# 背景设置部分
from PyQt5.QtGui import QPainter, QPixmap
from PyQt5.QtWidgets import QLabel, QPushButton, QFileDialogclass Ui_heheda(QWidget):def __init__(self):super(Ui_heheda, self).__init__()self.bool = Falseself.line_list = []self.w = ''self.Chinese = ''self.word = ''self.error_1 = []self.error_2 = []self.n = 0def setupUi(self, heheda):heheda.setObjectName("heheda")# heheda.resize(821, 600)heheda.resize(800, 600)image = QtGui.QPixmap()image.load(r"pig.png")palette1 = QtGui.QPalette()palette1.setBrush(heheda.backgroundRole(), QtGui.QBrush(image))  # 背景图片heheda.setPalette(palette1)heheda.setAutoFillBackground(True)# self.grabKeyboard()self.textEdit = QtWidgets.QTextEdit(heheda)self.textEdit.setGeometry(QtCore.QRect(50, 90, 711, 111))self.textEdit.setObjectName("textEdit")self.textEdit.setStyleSheet("background-color: rgb(255, 255, 255, 60);font-size:30px;border-radius:10px;")self.textEdit.setText(self.Chinese)self.textEdit_2 = QtWidgets.QTextEdit(heheda)self.textEdit_2.setGeometry(QtCore.QRect(50, 210, 191, 111))self.textEdit_2.setObjectName("textEdit_2")self.textEdit_2.setStyleSheet("background-color: rgb(255, 255, 255, 60);font-size:30px;border-radius:10px")# self.textEdit_2.setText(word)# self.textEdit_2.toPlainText()self.textEdit_4 = QtWidgets.QTextEdit(heheda)self.textEdit_4.setGeometry(QtCore.QRect(310, 210, 451, 111))self.textEdit_4.setObjectName("textEdit_4")self.textEdit_4.setStyleSheet("background-color: rgb(255, 255, 255, 60);font-size:30px;border-radius:10px;")self.textEdit_3 = QtWidgets.QTextEdit(heheda)self.textEdit_3.setGeometry(QtCore.QRect(300, 30, 211, 41))self.textEdit_3.setObjectName("textEdit_3")self.textEdit_3.setStyleSheet("background-color: rgb(255, 255, 255, 60);font-size:30px;border-radius:10px")self.pushButton = QtWidgets.QPushButton(heheda)self.pushButton.setGeometry(QtCore.QRect(50, 350, 191, 61))self.pushButton.setObjectName("pushButton")self.pushButton.clicked.connect(self.click_success)self.pushButton.setStyleSheet("background-color: rgb(255, 255, 255, 60);font-size:30px;border-radius:10px")self.pushButton_2 = QtWidgets.QPushButton(heheda)self.pushButton_2.setGeometry(QtCore.QRect(310, 350, 191, 61))self.pushButton_2.clicked.connect(self.click_continue)self.pushButton_2.setObjectName("pushButton_2")self.pushButton_2.setStyleSheet("background-color: rgb(255, 255, 255, 60);font-size:30px;border-radius:10px")self.pushButton_3 = QtWidgets.QPushButton(heheda)self.pushButton_3.setGeometry(QtCore.QRect(570, 350, 191, 61))self.pushButton_3.setObjectName("pushButton_3")self.pushButton_3.clicked.connect(self.click_exit)self.pushButton_3.clicked.connect(QCoreApplication.instance().quit)self.pushButton_3.setStyleSheet("background-color: rgb(255, 255, 255, 60);font-size:30px;border-radius:10px")self.pushButton_4 = QtWidgets.QPushButton(heheda)# self.pushButton_4.setGeometry(QtCore.QRect(90, 420, 100, 61))self.pushButton_4.setGeometry(QtCore.QRect(50, 420, 191, 61))self.pushButton_4.setObjectName("pushButton_4")self.pushButton_4.clicked.connect(self.click_filew)self.pushButton_4.setStyleSheet("background-color: rgb(255, 255, 255, 60);font-size:30px;border-radius:10px")self.pushButton_5 = QtWidgets.QPushButton(heheda)# self.pushButton_5.setGeometry(QtCore.QRect(615, 420, 100, 61))self.pushButton_5.setGeometry(QtCore.QRect(570, 420, 191, 61))self.pushButton_5.setObjectName("导入数据")self.pushButton_5.clicked.connect(self.click_data)self.pushButton_5.setStyleSheet("background-color: rgb(255, 255, 255, 60);font-size:30px;border-radius:10px")self.pushButton_6 = QtWidgets.QPushButton(heheda)self.pushButton_6.setGeometry(QtCore.QRect(310, 420, 191, 61))self.pushButton_6.setObjectName("pushButton_6")self.pushButton_6.setStyleSheet("background-color: rgb(255, 255, 255, 60);font-size:30px;border-radius:10px")self.pushButton_6.clicked.connect(self.click_answer)self.pushButton_7 = QtWidgets.QPushButton(heheda)self.pushButton_7.setGeometry(QtCore.QRect(50, 490, 191, 61))self.pushButton_7.setObjectName("pushButton_7")self.pushButton_7.setStyleSheet("background-color: rgb(255, 255, 255, 60);font-size:30px;border-radius:10px")self.pushButton_7.clicked.connect(self.click_error_txt)self.pushButton_8 = QtWidgets.QPushButton(heheda)self.pushButton_8.setGeometry(QtCore.QRect(310, 490, 191, 61))self.pushButton_8.setObjectName("pushButton_8")self.pushButton_8.setStyleSheet("background-color: rgb(255, 255, 255, 60);font-size:30px;border-radius:10px")self.pushButton_8.clicked.connect(self.click_reback)self.retranslateUi(heheda)QtCore.QMetaObject.connectSlotsByName(heheda)def retranslateUi(self, heheda):_translate = QtCore.QCoreApplication.translateheheda.setWindowTitle(_translate("heheda", "呵呵哒背单词神器!"))self.textEdit_3.setHtml(_translate("heheda","<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \".dtd\">\n""<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n""p, li { white-space: pre-wrap; }\n""</style></head><body style=\" font-family:\'宋体\'; font-size:9pt; font-weight:400; font-style:normal;\">\n""<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:12pt; font-weight:600;\">呵呵哒背单词!</span></p></body></html>"))self.pushButton.setText(_translate("heheda", "确定输入"))self.pushButton_2.setText(_translate("heheda", "继续练习"))self.pushButton_3.setText(_translate("heheda", "退出练习"))self.pushButton_4.setText(_translate("heheda", "导出数据"))self.pushButton_5.setText(_translate("heheda", "导入数据"))self.pushButton_6.setText(_translate("heheda", "查看答案"))self.pushButton_7.setText(_translate("heheda", "温习错背"))self.pushButton_8.setText(_translate("heheda", "闯关数据"))def click_success(self):import multiprocessingprint("啊哈哈哈我终于成功了!")print('=--------------------------------=',self.word)I_input_text = self.textEdit_2.toPlainText()print('=--------------------------------=', I_input_text)if I_input_text.strip() == self.word.strip():# self.bool=Trueself.textEdit_4.setText("恭喜您回答正确!!!")self.textEdit_4.append(I_input_text)from PyQt5.QtWidgets import QApplicationQApplication.processEvents()self.PaChong()else:self.textEdit_4.setText("很遗憾您答错了!正确答案是:")self.textEdit_4.append(self.word)self.error_1.append(self.word)self.error_2.append(self.Chinese)# self.my_thread.connect(self.click_display)# self.my_thread.word.connect(self.soud)def PaChong(self):import requestsimport ospath = self.word + '.mp3'if not os.path.exists(path):h = requests.get('=en&text=' + self.word + '&spd=2&source=alading').contentwith open(path, 'wb') as  f:f.write(h)from playsound import playsoundplaysound(path)def click_continue(self):print("继续!")import randomif len(self.line_list)==0:print("啥都没有")else:lst = []self.n=self.n+1if self.n==1:lst = self.line_list[0:50]random.shuffle(lst)if self.n==2:lst = self.line_list[50:100]random.shuffle(lst)if self.n==3:lst = self.line_list[100:150]# print(lst)random.shuffle(lst)if self.n==4:lst = self.line_list[150:-1]random.shuffle(lst)self.n=0lst = list(lst)if len(lst)==0:lst = self.line_list[0:50]lst = [i for i in lst if i != '\n']# print(lst)self.word_list = random.sample(lst, 1)print(self.word_list)self.w = self.word_list[0]# print(self.w)# print('============================', self.w.split(':')[:-2])self.word = self.w.split(':')[0]# print('============================', self.w.split(':')[0])print('============================',self.w.split(':')[1])self.Chinese = self.w.split(':')[1].strip('\n')self.textEdit.setText(self.Chinese)self.textEdit_2.setText(self.word)str = ''self.textEdit_2.setText(str)self.textEdit_4.setText(str)def click_exit(self):print("退出!")def click_data(self):my_file_path = QFileDialog.getOpenFileName(self, "打开文件", "/", "*.txt")print(my_file_path)file_object = open(my_file_path[0], 'r', encoding='UTF-8')self.textEdit_2.setText('')self.textEdit_4.setText('')self.line_list = []try:for line in file_object:self.line_list.append(line)finally:file_object.close()print(self.line_list)import randomself.word_list = random.sample(self.line_list, 1)self.line_list = self.line_listself.w = self.word_list[0]self.word = self.w.split(':')[0]self.Chinese = self.w.split(':')[1].strip('\n')self.textEdit.setText(self.Chinese)print(self.word)print(self.Chinese)def click_filew(self):f = open("error.txt", "a+")for i in range(len(self.error_1)):f.write(self.error_1[i] +':'+ self.error_2[i] )f.write('\n')self.show_message()self.error_1 = []self.error_2 = []f.close()def show_message(self):QMessageBox.information(self, "标题", "成功导出背不熟单词",QMessageBox.Yes)def click_answer(self):self.textEdit_4.setText(self.word)self.error_1.append(self.word)self.error_2.append(self.Chinese)def keyPressEvent(self, QKeyEvent):  # 键盘某个键被按下时调用# 参数1  控件from PyQt5.QtCore import Qtif QKeyEvent.modifiers()==Qt.ControlModifier and QKeyEvent.key()== Qt.Key_A: # 判断是否按下了A键# key()  是普通键print('按下了A键')self.click_answer()if QKeyEvent.modifiers()==Qt.ControlModifier and QKeyEvent.key()== Qt.Key_Z: # 判断是否按下了Z键# key()  是普通键print('按下了Z键')self.click_success()if QKeyEvent.modifiers()==Qt.ControlModifier and QKeyEvent.key()== Qt.Key_S: # 判断是否按下了S键# key()  是普通键print('按下了S键')self.click_continue()def click_error_txt(self):import randomself.textEdit_2.setText('')self.textEdit_4.setText('')# file_object = open('error.txt', 'r', encoding='UTF-8' encoding="ISO-8859-1")file_object = open('error.txt', 'r', encoding="utf-8")self.line_list = []try:for line in file_object:self.line_list.append(line)finally:file_object.close()self.line_list = set(self.line_list)self.line_list = list(self.line_list)print("不重复",self.line_list)try:random.shuffle(self.line_list)word_list = random.sample(self.line_list, 1)self.w = word_list[0]self.word = self.w.split(':')[0].strip('\n')self.Chinese = self.w.split(':')[1].strip('\n')self.textEdit.setText(self.Chinese)except:print("can't")QMessageBox.information(self, "data", "没有错题词汇",QMessageBox.Yes)def click_reback(self):# ###################################################self.textEdit_2.setText('')self.textEdit_4.setText('')import randomfile_object = open('test.txt', 'r', encoding='UTF-8')self.line_list = []try:for line in file_object:self.line_list.append(line)finally:file_object.close()random.shuffle(self.line_list)word_list = random.sample(self.line_list, 1)self.w = word_list[0]self.word = self.w.split(':')[0]self.Chinese = self.w.split(':')[1].strip('\n')self.textEdit.setText(self.Chinese)# ###################################################
  • 呵呵哒背单词神器

txt文本格式:

abandon:放弃 (棒)
aboard:在船,上船、
abroad:到国外,在国外
above:在...之上,高于
absent:缺席,不在
absolute:绝对的,完全的
absorb:吸收 吸引...的注意,使全神贯注
abstract:抽象的 摘要 梗概
abundant:丰富的,充裕的
accent:口音
access:接近,进入,通道
accommodation:住宿
accompany:陪伴,陪同,伴随,和...一起发生,为...伴奏
accomplish:完成,实现
according:按照,根据
account:叙述,说明,账户
accumulate:积累,积聚
accurate:准确的,精确的
accuse:指责,指控
accustomed:习惯的,惯常的
achieve:完成,实现;达到,得到
achievement:成绩,成就
acknowledge:承认,致谢
acquire:取得,获得,得到
across:横过,穿过;在...对面;宽,阔
act:行动;起作用;表演
active:行动,行动过程 (on)作用
actually:实际上
adapt:使适应,使适合;改编,改写
adequate:足够的,充足的;适当的,胜任的
adjust:调节,改变...以适应;校正,调整
admire:钦佩,赞赏,羡慕
admission:准许进入;承认,供认
adopt:收养;采取,采纳,采用
adult:成年人;成年的,成熟的
advance:前进,向前移动;取得进展;前进,进展;预付,预支
advanced:先进的,高级的
advantage:优点,优势;利益,好处
adventure:冒险,冒险活动;奇遇
advertise:登广告,宣扬
advertisement/ad:广告
affair:事情,事件
affect:影响;打动
afford:买得起,担负的起;提供,给予
afraid:害怕的,恐惧的;担心的
afterward:后来,以后
against:紧靠着;违反;和...对比
age:年龄;时代,时期;变老
agent:代理,代办
agency:代理,待办
agenda:会议事项;议事日程
agriculture:农业
ahead:在前,向前,提前
aid:援助,帮助;助手,辅助手段
aim:把...瞄准,把...对准;致力,旨在;瞄准,对准;目标,目的
air:空气,天空
aircraft:飞机,飞行器
airline:航空公司,航线
airport:机场
alarm:惊恐;报警器;使惊恐,向...报警
alcohol:酒精
alike:相像的
alive:活着的
allow:允许
allowance:津贴补助
almost:几乎,差不多
alphabet:字母表
already:早已经
alter:改变,变更
alternative:选择之事物;选择余地;二者选择其一的(*)
altogether:完全,全部;总而言之;总之,总共
always:总是,始终
amaze:使大为惊奇,使惊愕
ambassador:大使
ambition:有雄心的,野心勃勃的
amend:修正,修订(*)
amount:数量(*)
amuse:逗乐,逗笑;给...提供娱乐
analysis:分析;分解(e ei)
analyze:分析;分解(an)
ancestor:祖先;先驱者
ancient:古代的,古老的
anniversary:周年;周年纪念
announce:宣告,宣布
annoy:使恼怒,使烦恼
annual:每年的,年度的
anticipate:预期;希望(*)
anxiety:焦虑,忧虑;渴望
anxious:焦虑的,发愁的;渴望的,急切的
apart:分离,分开
apartment:公寓
apology:道歉,认错(n)
apologize:道歉(v)
apparent:表面上的,显然的
appeal:恳请,呼吁;上诉
appear:出现,显露;看起来,似乎
appearance:出现,露面;外观,外貌
appdendix:附录,附属物;阑尾(*)
appetite:食欲,胃口;欲望,爱好
appetizing:开胃的,刺激欲望的
applause:鼓掌,欢呼
apply:申请,请求;应用,运用;适用于
appliance:电气用具,装备(美[??pla??ns])(*)
applicant:申请,申请表;应用,实施
appoint:任命,委派;约定/指定(时间、地点)
appointment:约定/指定(时间、地点)
appreciate:重视,欣赏;领会,充分意识到;为..表示感激
appropriate:适当的(*)
approach:靠近,接近;途径,入门;方式,方法
approval:赞成,同意,认可,批准(n)
approve:赞成,同意;认可,批准(v)
April:四月
arbitration:仲裁,公断(*)
argue:争论,争辩
argument:争论,争辩;理由
arise:出现,发生;由...引起,起源于
arm:武器,军火;以武器装备;配备
army:军队;大群,大批
around:在周围,在附近;大约;在...附近
arouse:引起,激起,唤起;唤醒
arrange:安排,筹划;整理,排列,布置
arrest:逮捕,拘留
arrival:到来,到达(n)
arrive:到来,到达;达到,得出
arrow:箭状物
art:美术,艺术
article:文章,论文;条款,条文;件;
artificial:人工的,人造的,人为的;假的,矫揉造作的
artist:艺术家,美术家
ash:灰烬
Asia:亚洲
Asian:亚洲人的;亚洲的;亚洲人
aside:在旁边,到一边
asleep:睡着的
aspect:方面(*)
assess:对...进行评估,评价
assign:指派,选派;分配,布置(作业);指定(时间,地点等)
assignment:(分派的)任务;分配,指派
assist:帮助,协助
assistant:助手,助理;助教;助理的,辅助的
associate:协会,社团;联合,结合,交往,联想(*)
assume:假定,假设;承担(*)
assure:说服,使...相信;向...保证
astonish:使惊讶
athlete:运动员
Atlantic:大西洋的
atmosphere:大气,大气层;气氛
attach:系,贴,紧,装,连接;使成为一部分,使附属;使依(*)
attack:攻击,进攻
attempt:企图,试图
attend:出席,参加;照料,护理,专心于,致力于
attendant:服务员,伴随的,陪同的(*)
attention:注意,当心
attitude:态度,看法;姿势
attract:吸引,引起...的注意
audience:听众,观众,读者
August:八月
aunt:伯母,婶母...
Australia:澳大利亚,澳洲
Australian:澳大利亚人的;澳洲的,澳大利亚人
author:作者
authority:官方,当局,当权者,权力,权威
authorize:授权,委任
auto:汽车
automatic:自动的
automobie/auto:自动的
autumn:秋天,秋季
available:可利用的,可获得的;有空的,可取得联系的
avenue:林荫道,大街
average:平均数
avoid:避免,避开
await:等待,期待
awake:醒着的;唤醒,使觉醒
award:奖品,奖状;授予,给予
awful:可怕的;极度的,极坏的
awkward:粗苯的,笨拙的;令人尴尬的,棘手的

我是热爱学习,热爱编程的呵呵哒!如果你喜欢我的文章,不妨点个赞吧~

有疑问的话可以留言,我会尽我所能回答。

更多原创文章,尽请期待!

 

更多推荐

用Python和PYQT5写一个“背单词神器”

本文发布于:2024-02-13 21:37:04,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1760708.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:神器   背单词   Python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!