



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
用 python pygtk glade3 实现 Yahoo 翻译桌面版 2009 03 15 2200 转这个代码 方便学习 pygtk 对比了 tk 和 wx 发现还是 pygtk 好点 转自 httpblog wangfan orgindex phpa post bid 17 每次翻译都去 yahoo 的网站不是很方便 所以自己写了一个 Yahoo 翻译桌面版 整个程序用 python 做为编码语言 pygtk 库实现 gui 为了方便 用 glade3 画了界面 先 来看看最终的程序界面吧 由于我用不到别的外语 所以功能上只有英汉互译 首先 在开始编码之前 分析一下 yahoo 翻译的网页 来确定程序的 核心逻辑 Yahoo 翻译的网页源码很简单 一目了然 不像 google 翻译的网页有这么多花哨 的 ajax 每次翻译都是向 translate txtPOST 数据 格式为 ei UTF 8 fr lp en zh trtext 英译中对应的 lp 值为 en zh 中译英对应的 lp 值为 zh en trtext 就是原文的内容 分析好了就可以开始编码了 贴出程序的完整源码 usrbinenv python coding utf 8 导入库文件 import pygtk import gtk import gtk glade import urllib import urllib2 import threading import re import sys 翻译功能类 继承于一个线程类 class trans threading Thread 初始化 def init self threading Thread init self name trans self url translate txt self text None self trans in self trans out self text out None self text in None def getText self widget buf widget get buffer b e buf get bounds return buf get text b e def setText self widget text buf widget get buffer buf set text text widget set buffer buf def run self self setText self text out 正在翻译 values ei UTF 8 fr lp s s self trans in self trans out trtext s self getText self text in replace n rnr data urllib urlencode values request urllib2 Request self url data conn urllib2 urlopen request res conn read res re findall div id pd class pd 1 div res res res 0 replace br n res res replace dnt dnt n self setText self text out res 主界面类 class yahooTrans def init self self ui file sys path 0 ui glade self widgetTree gtk glade XML self ui file window1 dic on exit clickedgtk main quit on window1 destroygtk main quit on to zh clickedself toZh on to en clickedself toZh self widgetTree signal autoconnect dic def toZh self widget print widget get name t trans t text in self widgetTree get widget text in t text out self widgetTree get widget text out if widget get name to zh t trans in en t trans out zh else t trans in zh t trans out en t setDaemon True t start def main self gtk main 入口 gtk 主程序循环 if name main gtk gdk threads init app yahooTrans app main 可见 程序中用到了多线程 把翻译过程放在另一个线程中执行 这是因为这个是在线翻译 程序 点击翻译按钮后的处理过程 网络通信 相对比较漫长 所以必须使 gtk 主循环与处 理过程 翻译 异步 如果直接把翻译过程放在按钮消息映射函数 def toZh self widget 中的话 那么程序在读取网络的时候 整个界面会僵死 直至处理完成 还有 程序界面用的是 glade 生成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 园区安全巡查重点培训课件
- 统计专业技术中级资格考试(统计工作实务)备考题库及答案(昭通2025年)
- 安全SHE培训课件
- 课件制作教学研讨简报
- 执法实务技能实操考试题及答案
- 正安辅警考试题库及答案
- 2025年中国音频线路接收器行业市场全景分析及前景机遇研判报告
- 2024-2025学年度自考专业(电子商务)考前冲刺练习题含答案详解(综合卷)
- 2024-2025学年政法干警考试黑钻押题带答案详解(培优B卷)
- 2025年上海社会科学院工作人员招聘(34人)笔试备考试题附答案详解(完整版)
- 中医面瘫护理个案汇报
- 《水基路用聚合物稳定碎石基层技术规程》
- 快递柜租赁合同
- 产品研发流程管理指南
- 《车刀与切削原理》课件
- 2024高考物理全国二卷
- 2024-2030年中国猎头公司市场发展前景调研及投资战略分析报告
- 注塑检验员培训
- 消防安全操作员培训合同范本
- 消防控制室操作规程培训
- 国庆节磨豆腐活动方案
评论
0/150
提交评论