# -*- coding: utf-8 -*-
#########################################################################################################################
# 英语字典
#_______________________________________________________________________________________________________________________
# 版本: V01
# 变更记录: 初始创建
# 变更人: 刘晶
# 变更时间: 20240408
#_______________________________________________________________________________________________________________________
#
#
#########################################################################################################################
from PyQt5.QtWidgets import (QApplication, QMainWindow, QLabel, QLineEdit, QFileDialog, QTextBrowser, \
QPushButton, QGroupBox, QGridLayout)
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QIcon, QPixmap, QGuiApplication
from openpyxl import load_workbook
import sys
import time
# “def” 是用来定义函数的,下面定义了一个查字典函数,你要把界面上的中文输入框和英文输出框,
# 还有表格的数据给这个函数,它在表格里查到了中文的英文意思,就会把英文显示在界面上。
def HanShu_ChaZiDian(ZhongWen_ShuRuKuang, YingWen_ShuRuKuang, ShuJu):
YaoChaDe_ZhongWen = ZhongWen_ShuRuKuang.text() # 取出输入的中文
BiaoGe_ZuiDaHangShu = ShuJu.max_row # 获取表格的最大行数
ChaZhaoJieGuo_WenBen = '' # 查找结果的文本
for i in range(1, BiaoGe_ZuiDaHangShu):
BiaoGeDe_YingWen = ShuJu['A' + str(i)].value
BiaoGeDe_ZhongWen = ShuJu['B' + str(i)].value
ChaZhaoJieGuo = BiaoGeDe_ZhongWen.find(YaoChaDe_ZhongWen) # 在表格的中文中查找是否有输入查询的中文
if ChaZhaoJieGuo != -1: # 如果没找到 ChaZhaoJieGuo 是等于 -1 的
if ChaZhaoJieGuo_WenBen:
ChaZhaoJieGuo_WenBen = ChaZhaoJieGuo_WenBen + ' \n' + '[ ' + BiaoGeDe_YingWen + ' ] ' + BiaoGeDe_ZhongWen
else:
ChaZhaoJieGuo_WenBen = '[ ' + BiaoGeDe_YingWen + ' ] ' + BiaoGeDe_ZhongWen
if ChaZhaoJieGuo_WenBen:
YingWen_ShuRuKuang.setText(ChaZhaoJieGuo_WenBen)
else:
YingWen_ShuRuKuang.setText('表格中没有查到')
QApplication.processEvents()
time.sleep(1.5) # 等待 1.5 秒,在运行下面的语句。
YingWen_ShuRuKuang.clear() # 清空输入框中的内容
QApplication.processEvents() # 这条语句可以刷新界面的显示,如果没有这条语句,上面这条语句运行之后,界面不会显示更新的内容。
# 程序从这里开始运行————————————————————————————————————————————————————————————————————————————————————————————————————
# 如果有两个屏幕,工具界面从一个屏幕拉到另一个屏幕会变形,有了下面三条语句就不会变形。
QGuiApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
QGuiApplication.setAttribute(Qt.AA_UseHighDpiPixmaps)
QGuiApplication.setHighDpiScaleFactorRoundingPolicy(Qt.HighDpiScaleFactorRoundingPolicy.PassThrough)
App = QApplication(sys.argv) # 创建一个应用程序
# 弹窗选择 《英语单词和中文意思.xlsx》 表格
BiaoGe_LuJing = QFileDialog.getOpenFileName(None, "请选择 《英语单词和中文意思.xlsx》 表格", None, "(*.*)")
BiaoGe_LuJing = BiaoGe_LuJing[0]
if BiaoGe_LuJing: # 如果选择了表格,才生成界面。
BiaoGe = load_workbook(filename = BiaoGe_LuJing, data_only = True) # 读取表格,并且只读取数据。
SheetName = '单词'
ShuJu = BiaoGe[SheetName] # 读取 “单词” 这个 Sheet 的数据
JieMian = QMainWindow() # 新建一个窗口
JieMian.setWindowTitle('虫虫的英语字典') # 窗口的标题设置成 “虫虫的英语字典”
Icon = QIcon() # 新建一个图标
Icon.addPixmap(QPixmap('./Picture.ico'), QIcon.Normal, QIcon.Off) # 图标的图片用 “./Config/Picture.ico”
JieMian.setWindowIcon(Icon) # 将图标放置到窗口界面上
JieMian.setFixedSize(450, 300) # 调整窗口的大小为 宽:450像素点 高:300像素点
ZhongWen_BiaoTi = QLabel('输入中文:') # 新建标签 “输入中文”
ZhongWen_ShuRuKuang = QLineEdit() # 新建一个中文输入框,这个框只可以显示一行的内容。
YingWen_BiaoTi = QLabel('输出英文:') # 新建标签 “输出英文”
YingWen_ShuRuKuang = QTextBrowser() # 新建一个英文输出框,这个框可以显示多行的内容。
ChaZhao = QPushButton('查找单词') # 新建一个按钮
# 按 “查找单词” 按钮会调用 “HanShu_ChaZiDian” 函数
ChaZhao.clicked.connect(lambda:HanShu_ChaZiDian(ZhongWen_ShuRuKuang, YingWen_ShuRuKuang, ShuJu))
WangGe = QGridLayout() # 新建一个网格
WangGe.setSpacing(10) # 设置网格的间隔为 10 个像素
# 网格我把它分成 5 行 6 列,把按钮,输入框这些东西挂在网格上。
# WangGe.addWidget(ZhongWen_BiaoTi, 0, 0, 1, 1)
# 第一个数字 “0” 代表从网格的第一行开始, 第二个数字 “0” 代表从网格的第一列开始,
# 第三个数字 “1” 代表 “ZhongWen_BiaoTi” 这个标签占用网格一行的高度,
# 第四个数字 “1” 代表 “ZhongWen_BiaoTi” 这个标签占用网格一列的宽度。
WangGe.addWidget(ZhongWen_BiaoTi, 0, 0, 1, 1)
WangGe.addWidget(ZhongWen_ShuRuKuang, 0, 1, 1, 4)
WangGe.addWidget(YingWen_BiaoTi, 1, 0, 1, 1)
WangGe.addWidget(YingWen_ShuRuKuang, 1, 1, 3, 4)
WangGe.addWidget(ChaZhao, 4, 1, 1, 3)
MianBan = QGroupBox() # 新建一个面板
MianBan.setLayout(WangGe) # 把网格挂在面板上
JieMian.setCentralWidget(MianBan) # 把面板挂在窗口上
JieMian.show() # 显示界面窗口
sys.exit(App.exec_()) # 运行应用程序事件循环,并在事件循环结束后退出程序。 就是让界面一直显示,直到你关闭界面。
虫虫的英语字典-给虫虫做的第一个小工具
需积分: 5 56 浏览量
2024-04-08
15:10:36
上传
评论
收藏 155KB ZIP 举报
![avatar](https://profile-avatar.csdnimg.cn/d5ad13786518493ca2126cf157ba0a5e_2301_81629941.jpg!1)
MikeFeidan
- 粉丝: 14
- 资源: 9
最新资源
- 基于GUI+MYSQL+JAVA票务管理系统文档介绍+源码+数据库(高分大作业).zip
- 优先编码器除法电微分运算电路 全加器函数发生电路等电路经典Multisim仿真实验源文件合集(25个).zip
- 2331308JS课堂案例.zip
- STM32H750VBT6单片机最小系统开发板AD设计硬件(原理图+PCB+3D封装库)工程文件.zip
- 基于74LS161+ 74LS192芯片实现倒计时定时器Multisim仿真源文件,Multisim10以上版本可打开运行
- 科大讯飞语音引擎 jar包 demo,科大讯飞语音合成引擎3.0,支持4.0系统以上,文字转语音输出.zip
- Java架构面试笔试专题资料及经验(含答案)SpringBoot面试Linux面试专题及答案 合集.zip
- 头歌c语言实验答案tion-model-for-ne开发笔记
- docker配置使用-model-for-networK开发demo
- docker配置使用vaWeb-mas笔记
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)