浏览 6180 次
锁定老帖子 主题:也发一个python小辞典(Qt版)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-07-28
最后修改:2009-07-28
看前面兄弟贴了一个,想起自己也写过一个,贴出来大家分享吧。
这里用Pyqt做界面,辞典主要是用dictcn提供的xml的api,方便了很多。
#!/usr/bin/env python # -*-encoding:utf-8 -*- ############################## # author: yanckin#gmail.com # 2009.05.09 version 0.1 ############################## import sys import urllib from xml.etree.ElementTree import parse from PyQt4.QtCore import * from PyQt4.QtGui import * LOOKUP_URL = "http://dict.cn/ws.php?utf8=true&q=%s" class Form(QDialog): def __init__(self,parent=None): super(Form,self).__init__(parent) self.browser = QTextBrowser() self.lineedit = QLineEdit(u"输入单词,并按回车键") self.lineedit.selectAll() layout = QVBoxLayout() layout.addWidget(self.lineedit) layout.addWidget(self.browser) self.setLayout(layout) self.lineedit.setFocus() self.connect(self.lineedit,SIGNAL("returnPressed()"),self.updateUi) self.setWindowTitle(u"小译通") def updateUi(self): word = unicode(self.lineedit.text()) url = LOOKUP_URL % word dictcn = parse(urllib.urlopen(url)).getroot() if not dictcn.find('pron'): word = '[%s]'%word url = LOOKUP_URL % word dictcn = parse(urllib.urlopen(url)).getroot() self.browser.clear() self.browser.append(u"<h3><font color=blue>您要找的是不是:\n\n</font></h2>" ) similarwords = ', '.join([i.text for i in dictcn.findall('sugg')]) self.browser.append(u"<font color=red>%s\n\n</font>" %similarwords ) else: pron = dictcn.find('pron').text define = dictcn.find('def').text self.browser.clear() self.browser.append(u"<h2><font color=green>%s [%s]\n\n</font></h2>"%(word,pron)) self.browser.append(u"<h3><font color=blue>含义:\n\n</font></h3>" ) self.browser.append(u"<font color=red>%s\n\n</font>" %define ) self.browser.append(u"<h3><font color=blue>例句:\n\n</font></h3>" ) for i,sent in enumerate(dictcn.findall('sent')): orig = sent.find('orig').text trans = sent.find('trans').text self.browser.append(u"<font color=#ff00ff>%s. %s</font>"%(i,orig)) self.browser.append(u" %s"%trans ) if __name__ == "__main__": app = QApplication(sys.argv) form = Form() form.show() app.exec_() 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-09-12
pyqt 现在用 py2exe 能 正确打包么?
|
|
返回顶楼 | |
发表时间:2009-10-09
smiletuna 写道 pyqt 现在用 py2exe 能 正确打包么?
完全没问题 |
|
返回顶楼 | |
发表时间:2009-12-09
風之舞 写道 我把:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ dictcn = parse(urllib.urlopen(url)).getroot() if not dictcn.find('pron'): # 這句 word = '[%s]'%word ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 換成: if not dictcn.findtext('pron',default=False): 程序才能正常運行... 这个应该不至于,返回的肯定是boolean,难道你是py3k? >>> text ="hello,world" >>> not text.find("hello") True >>> not text.find("good") False |
|
返回顶楼 | |