在进行英文文献阅读时,经常会出现一些不认识的单词,但对于一些pdf阅读器,比如Foxit阅读器使用翻译功能需要点击(Extra->Translate),并且启用了翻译功能将不能使用注释功能,这对于阅读者来说将是极不方便的。所以为了方便查询单词,自己开发了个Windows环境下的Python程序用于监控并查询单词,而只需的操作就是选中单词并按Ctrl+C即可。

该Python程序主要分为三部分:从另外一个应用程序中获取需要查询的单词,单词翻译和单词显示。
从另外一个应用程序中获取需要查询的单词涉及到进程间通信,在Windows上最简单的方法是使用Clipboard功能。Python中有多种方式可以使用剪切板,比如使用win32clipboard(Python使用剪切板的方法)。这里使用的是Qt实现的clipboard,Qt的剪切板实现支持当系统剪切板内容发生改变时回调。具体实现:
# 获取Qt的剪切板并绑定回调函数 self.clipboard = QApplication.clipboard() self.clipboard.dataChanged.connect(self.on_clipboard_changed)
# 回调函数 def on_clipboard_changed(self): data = self.clipboard.mimeData() if data.hasText(): word = data.text().strip() m = re.match(r'[a-zA-Z]+', word) if m: self.setWord(word) #self.setWindowFlags(self.windowFlags() & QtCore.Qt.WindowStaysOnTopHint) #self.setWindowState(self.windowState() & ~QtCore.Qt.WindowMinimized | QtCore.Qt.WindowActive) trans = queryWords(word) self.setTrans(trans) ''' tip the window content has changed, but cannot move the window to the forground''' self.activateWindow() else: print(word)
单词翻译直接调用有道单词翻译,单词翻译的链接格式为http://dict.youdao.com/w/{}/,其中{}为需要查询的单词。获取的将是单个网页,使用BeautifulSoup提取最终的翻译结果。
def queryWords(word):
''' 利用有道翻译查询单词 '''
url = 'http://dict.youdao.com/w/{}/'.format(word)
html = getURL(url)
soup = BeautifulSoup(html.text, 'html.parser')
trans_container = soup.find(class_='trans-container')
if not trans_container:
''' not found the translation '''
return [word]
trans_li = trans_container.find_all('li')
trans_data = [li.text.strip() for li in trans_li]
return trans_data
最后显示是通过Qt编写的界面,原本是想查询到单词后,界面窗口自动激活并移动到最前端,但Windows不允许未经用户操作而将窗口移动到最前端,所以最后只是通过激活窗口提示用户。
完整的代码位于https://github.com/llf2017/pyDict/blob/master/pyDict.py
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Python单词翻译
# Python翻译
# Python单词翻译功能
# python翻译软件实现代码(使用google api完成)
# python自动翻译实现方法
# python3使用urllib示例取googletranslate(谷歌翻译)
# python在命令行下使用google翻译(带语音)
# 使用Python3中的gettext模块翻译Python源码以支持多语言
# python使用百度翻译进行中翻英示例
# 使用Python从有道词典网页获取单词翻译
# 用Python编写一个基于终端的实现翻译的脚本
# python利用有道翻译实现"语言翻译器"的功能实例
# python3调用百度翻译API实现实时翻译
# 剪切板
# 回调
# 将是
# 另外一个
# 应用程序
# 的是
# 阅读者
# 中有
# 只需
# 英文
# 不认识
# 可以使用
# 本是
# 涉及到
# 将不
# 最简单
# 经常会
# 绑定
# 极不
# 并按
相关文章:
如何通过服务器快速搭建网站?完整步骤解析
七夕网站制作视频,七夕大促活动怎么报名?
网站制作员失业,怎样查看自己网站的注册者?
建站之星安装失败:服务器环境不兼容?
PHP正则匹配日期和时间(时间戳转换)的实例代码
成都网站制作公司哪家好,四川省职工服务网是做什么用?
中山网站制作网页,中山新生登记系统登记流程?
建站主机系统SEO优化与智能配置核心关键词操作指南
济南网站建设制作公司,室内设计网站一般都有哪些功能?
如何制作一个表白网站视频,关于勇敢表白的小标题?
如何访问已购建站主机并解决登录问题?
小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
头像制作网站在线制作软件,dw网页背景图像怎么设置?
如何在IIS中新建站点并配置端口与物理路径?
如何使用Golang table-driven基准测试_多组数据测量函数效率
阿里云网站制作公司,阿里云快速搭建网站好用吗?
SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?
b2c电商网站制作流程,b2c水平综合的电商平台?
如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法
哈尔滨网站建设策划,哈尔滨电工证查询网站?
建站主机服务器选型指南与性能优化方案解析
宁波免费建站如何选择可靠模板与平台?
建站之星CMS建站配置指南:模板选择与SEO优化技巧
如何在IIS中新建站点并配置端口与IP地址?
如何通过.red域名打造高辨识度品牌网站?
如何在景安云服务器上绑定域名并配置虚拟主机?
建站之星安装后界面空白如何解决?
红河网站制作公司,红河事业单位身份证如何上传?
移民网站制作流程,怎么看加拿大移民官网?
如何在搬瓦工VPS快速搭建网站?
C#如何序列化对象为XML XmlSerializer用法
寿县云建站:智能SEO优化与多行业模板快速上线指南
制作电商网页,电商供应链怎么做?
建站之星备案是否影响网站上线时间?
武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?
建站之星如何修改网站生成路径?
盘锦网站制作公司,盘锦大洼有多少5G网站?
建站主机无法访问?如何排查域名与服务器问题
建站主机选哪种环境更利于SEO优化?
如何在腾讯云免费申请建站?
如何在阿里云虚拟主机上快速搭建个人网站?
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
建站之星如何快速解决建站难题?
如何在Golang中使用replace替换模块_指定本地或远程路径
兔展官网 在线制作,怎样制作微信请帖?
定制建站流程步骤详解:一站式方案设计与开发指南
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
*请认真填写需求信息,我们会在24小时内与您取得联系。