PyQT开发的简易有道词典
来源:互联网 发布:mysql 5.7.17安装教程 编辑:程序博客网 时间:2024/04/29 07:38
最近学习PyQt,写了一个比较简单的字典,使用了有道翻译OpenAPI,下面是代码:
# -*- coding: utf-8 -*-__author__ = 'Cullen'import urllibimport jsonimport urllib2from PyQt4 import QtGui, QtCoreimport sysAPI_KEY = '1349304933'KEYFROM = 'cullen'class MyDict(QtGui.QWidget): def __init__(self): super(MyDict, self).__init__() self.setGeometry(150, 150, 350, 300) self.setWindowTitle(u"有道字典简易版") self.setWindowIcon(QtGui.QIcon("./dict.png")) self.textEdit = QtGui.QLineEdit() self.searchBut = QtGui.QPushButton(u"查找") self.showTran = QtGui.QTextBrowser() grid = QtGui.QGridLayout() grid.addWidget(self.textEdit, 1, 0) grid.addWidget(self.searchBut, 1, 1) grid.addWidget(self.showTran, 2, 0, 1, 2) self.setLayout(grid) self.connect(self.searchBut, QtCore.SIGNAL('clicked()'), self.get_text) #@QtCore.pyqtSlot() def get_text(self): text = self.textEdit.text() if len(text) != 0: result = get_translate(text) self.showTran.clear() self.showTran.append(decode_data(result))def main(): app = app = QtGui.QApplication(sys.argv) qb = MyDict() qb.show() sys.exit(app.exec_())def get_translate(word): url = 'http://fanyi.youdao.com/openapi.do' data = { 'keyfrom': KEYFROM, 'key': API_KEY, 'type': 'data', 'doctype': 'json', 'version': 1.1, 'q': word } data = urllib.urlencode(data) url = url+'?'+data req = urllib2.Request(url) response = urllib2.urlopen(req) result = json.loads(response.read()) return resultdef decode_data(json_data): query = json_data.get('query','') translation = json_data.get('translation','') basic = json_data.get('basic','') sequence = json_data.get('web',[]) phonetic,explains_txt,seq_txt,log_word_explains = '','','','' if basic: phonetic = basic.get('phonetic','') explains = basic.get('explains',[]) for obj in explains: explains_txt += obj+'\n' log_word_explains += obj+',' if sequence: for obj in sequence: seq_txt += obj['key']+'\n' values = '' for i in obj['value']: values += i+',' seq_txt += values+'\n' print_format = '*'*40 + '\n' print_format += u'查询的单词: %s [%s]\n' %(query, phonetic) print_format += explains_txt print_format += '-'*20+'\n'+seq_txt print_format += '*'*40+'\n' #gbk_format = print_format.encode('GBK', 'ignore') #print gbk_format return print_formatif __name__ == "__main__": main()
下面是效果;
0 0
- PyQT开发的简易有道词典
- 有道词典简易客户端
- android简单的有道词典开发
- Android有道词典开发
- 有道词典的问题
- 有道词典的查询
- 有道词典的查询
- 简单的有道词典
- 有道词典的使用
- android有道词典简单开发
- LInux下的有道词典
- 有道词典的简单实现
- 有道词典的简单实现
- 有道词典
- 有道词典
- 有道词典
- 有道词典
- 有道词典
- VirtualBox上Ubuntu虚拟机反应慢
- C++中换行endl和\n的区别
- [C#-4] params关键字
- poj 2945 Find the Clones trie树的简单应用
- UVALive 6665 最短路
- PyQT开发的简易有道词典
- stl之map容器的原理及应用
- 机器学习 之 贝叶斯分类器
- c++ public、private和protected区别
- POJ 2846 解题报告 Trie 树变型
- linux下如何模拟按键输入和模拟鼠标?
- 【LeetCode】2 Add Two Numbers
- android stuido环境下获取sha1的方法
- ocp053第411题