【项目5】图形化词典软件

  1 import urllib.request
  2 import json
  3 """
  4 1, 把本文件改成 main.py 文件名
  5
  6
  7 2, 今后需要编写图形界面程序, 我们使用 kivy 这个开发框架来做这件事, 先安装 kivy
  8
  9 Windows 安装方法:
 10     0, 打开 cmd
 11
 12     1, 输入 python --version 检查并确保安装的是否是 Python 3.6.5
 13
 14     2, 在命令行输入以下命令进行安装,需要一定的时间,耐心等待,如果有错误到群里提问讨论
 15     python -m pip install --upgrade pip wheel setuptools
 16     python -m pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew
 17     python -m pip install kivy.deps.gstreamer
 18     python -m pip install kivy
 19
 20
 21
 22 Mac 安装方法(请严格按照指令执行, 不要自创):
 23     0, 下载群文件中的 Kivy-1.10.0-osx-10.12.5-python3.5.dmg 文件
 24
 25     1, 确保你的系统是 10.12 以上
 26
 27     2, 双击 dmg 文件打开, 把 Kivy.app 拖入 /Applications 目录
 28
 29     3, 完成步骤 2 后
 30         1) 右键(必须右键) MakeSymlinks 文件
 31         2) 点击打开
 32         3) 在弹出的对话框中点再点击打开
 33         4) 弹出的终端窗口显示 [Process completed] 后可以关闭
 34
 35     4, 进入 /Applications 目录找到 Kivy.app 文件
 36         1) 右键(必须右键)
 37         2) 点击打开
 38         3) 在弹出的对话框中点再点击打开
 39
 40
 41 3, 运行程序
 42 可以使用 Pycharm 编辑代码
 43
 44 Windows 运行代码方法:
 45 在 pycharm 中运行
 46
 47 Mac 运行代码方法
 48 把代码放在桌面上, 改名为 main.py
 49 运行代码需要在 终端 中进行
 50 打开终端, 输入下面的命令运行程序(可以复制粘贴)
 51 kivy ~/Desktop/main.py
 52
 53
 54
 55 4, 参考下面的代码, 结合项目 4, 实现一个图形化查词软件
 56 """
 57 from kivy.app import App
 58 from kivy.config import Config
 59 from kivy.uix.textinput import TextInput
 60 from kivy.uix.boxlayout import BoxLayout
 61
 62
 63 def openurl(url):
 64     # 下载页面, 得到的是一个 bytes 类型的变量 s
 65     s = urllib.request.urlopen(url).read()
 66     # 用 utf-8 编码把 s 转为字符串并返回
 67     content = s.decode(‘utf-8‘)
 68     return content
 69
 70
 71 def translate(word):
 72     """
 73     word 是一个不包含空格的单词
 74     """
 75     key = ‘3C2D3651D97914DC028F61B2C4F883C0‘
 76     url = ‘http://dict-co.iciba.com/api/dictionary.php?type=json&key={}&w={}‘.format(
 77         key, word)
 78     s = openurl(url)
 79     d = json.loads(s)
 80     d = d[‘symbols‘][0][‘parts‘]
 81     result = []
 82     for i in d:
 83         key = i[‘part‘]
 84         value = i[‘means‘]
 85         result.append(key)
 86         result.append(‘\n‘)
 87         for j in range(len(value)):
 88             result.append(value[j])
 89             result.append(‘\n‘)
 90     string = ‘‘
 91     for i in result:
 92         string = string + i
 93     return string
 94
 95
 96 def font_name():
 97     """
 98     苹果系统和微软系统需要不同的字体文件
 99     """
100     from sys import platform
101     if platform == "darwin":
102         return ‘Arial Unicode‘
103     elif platform == "win32":
104         return ‘SimHei‘
105     else:
106         print(‘not support‘)
107
108
109 # 程序一定是一个继承自 App 的 xxApp 类作为起点
110 class TestApp(App):
111     # build 函数是固定的, 它用于生成界面
112     def build(self):
113         self.config_window()
114         root = self.setup_ui()
115         return root
116
117     def config_window(self):
118         """
119         这里设置了 3 个属性, 这是固定的写法
120         分别是 禁止缩放, 宽度 400, 高度 600
121         """
122         Config.set(‘graphics‘, ‘resizable‘, False)
123         Config.set(‘graphics‘, ‘width‘, 400)
124         Config.set(‘graphics‘, ‘height‘, 600)
125
126     def setup_ui(self):
127         """
128         程序窗口必须有一个 layout(布局), 所有的按钮/文本框之类的东西都必须添加在布局中
129         我们把 按钮 文本框 这类的东西叫做 控件
130         我们这里用了 boxlayout, 先不管, 用起来
131             orientation=‘vertical‘ 表示这个 layout 里面的东西是竖直排列的
132             竖直排列的情况下, 一个控件默认是横向填满, 平分高度
133             这个例子中我们添加了 2 个文本框, 所以他们每个占据一半的高度
134         """
135         layout = BoxLayout(orientation=‘vertical‘)
136         # textinput 是文本输入框, multiline=False 表示这是一个单行文本框
137         input = TextInput(multiline=False)
138         # 给 input 绑定一个事件 on_text_validate
139         # 这个事件是在按回车的时候触发的, 也就是说你按回车的时候 self.check 函数会被调用
140         input.bind(on_text_validate=self.check)
141         layout.add_widget(input)
142         #
143         result = TextInput()
144         # kivy 默认不支持中文字符显示, 必须手动指定包含中文的字体文件才可以显示中文
145         # 因为 mac 和 win 的字体文件不同, 所以我们用一个函数来判断具体使用哪个字体文件
146         result.font_name = font_name()
147         layout.add_widget(result)
148         # 把 result 这个输入框用类的属性存起来之后要使用
149         # 类属性在类的任何函数中都可以创建, 并不一定要在 __init__ 中创建
150         self.result = result
151         #
152         return layout
153
154     def check(self, input):
155         """
156         input 就是触发回车的输入框控件
157         """
158         # input.text 可以获取这个输入框中输入的文本
159         print(‘check, ‘, input.text)
160         s = translate(input.text)
161         # 我们在这里可以设置 result 输入框的文本
162         self.result.text = s
163
164
165 def main():
166     # 生成 App 并运行
167     TestApp().run()
168
169
170 if __name__ == ‘__main__‘:
171     main()

原文地址:https://www.cnblogs.com/bladeofstalin/p/10094880.html

时间: 2024-10-15 18:42:23

【项目5】图形化词典软件的相关文章

2018-05-17-OAA-一种mermaid脚本驱动的软件项目模块图形化表述思路

layout: post title: 2018-05-17-OAA-一种mermaid脚本驱动的软件项目模块图形化表述思路 key: 20180517 tags: OAA flow chart sequence diagram 泳道图 时序图 图表 OAA PM Master modify_date: 05-17 --- OAA-一种mermaid脚本驱动的软件项目模块图形化表述思路 说明: 本文发布于: gitee,github,博客园 转载和引用请指明原作者和连接及出处. 正文: 说明:这

结对项目--四则运算图形化最终版

四则运算器图形化最终版 (然而被我做成了奇怪的东西 组员:13070030张博文 13070033刘云峰 一.概念阶段 最初是想试试用android做个计算器app,无奈从零学起着实太赶,而且这个计划在试用了无比卡顿占内存的android studio后就彻底搁浅了. 然后就被路人谣传说MFC好用,无奈从零学起着实太赶,而且这个计划在无人指导的摸黑下也顺手搁浅了. 最终便沦为了EasyX旧传统,好歹有点基础,但果然还是不太甘心. 以及因为当初想做app,所以抠了iphone计算器的图想当UI,结

Mac 上最好用的图形化Sqlite软件

软件名称 : SQLPro for SQLite Read_Only 软件特点 软件带有示例数据库,可视化图层分为4层: Schema(模型) Data(数据) Query(查询) Structure(结构) 数据导出(CSV.Json.XML.MySql.SqlLite 2) 软件截图

几款开源的图形化Redis客户端管理软件

您的评价: 收藏该经验 阅读目录 Redis Desktop Manager Redis Client Redis Studio 原文  http://ourjs.com/detail/555975b9329934463f00000f Redis是一个超精简的基于内存的键值对数据库(key-value),一般对并发有一定要求的应用都用其储存session,乃至整个数据库. 参见: node.js与redis结合使用 . 不过它公自带一个最小化的命令行式的数据库管理工具,有时侯使用起来并不方便.不

Redis图形化客户端管理软件推荐

Redis是一个超精简的基于内存的键值对NOSQL数据库(key-value),一般对并发有一定要求的应用都用其储存session,乃至整个数据库.不过它公自带一个最小化的命令行式的数据库管理工具redis-cli,但使用起来并不方便.所幸Github上面已经有了很多图形化的管理工具,如果你不想对着黑屏打码的话,这是一些选择. Redis Desktop Manager 一款基于Qt5的跨平台Redis桌面管理软件 支持: Windows 7+, Mac OS X 10.10+, Ubuntu

[课程分享]IT软件项目管理(企业项目甘特图案例评价、维护管理、文档管理、风险管理、人力资源管理)

对这个课程有兴趣的朋友可以加我的QQ2059055336和我联系 课程讲师:丁冬博士 课程分类:Java 适合人群:中级 课时数量:32课时 用到技术:IT软件项目配置.IT软件项目模板的制定 涉及项目:IT软件企业项目甘特图案.IT软件项目可行性报告分析.基于svn的IT软件项目配置管理案例 更新程度:完成 课程背景: 该课程是北风品牌项目管理课程系列之一<IT项目管理>课程.通过本课程的教学,使学生掌握IT项目管理的基本原理和基本技能,能够根据项目干系人的特征需求,确定项目的范围,经过计划

HeidiSQL软件推荐( MySQL 服务器和数据库管理的图形化界面)

一. 软件介绍 HeidiSQL 是一款用于简单化你的 MySQL 服务器和数据库管理的图形化界面.该软件允许你浏览你的数据库,管理表,浏览和编辑记录,管理用户权限等等. 此外,你可以从文本文件导入数据,运行 SQL查询,在两个数据库之间同步表以及导出选择的表到其它数据库或者 SQL 脚本当中. HeidiSQL 提供了一个用于在数据库浏览之间切换 SQL 查询和标签带有语法突出显示的简单易用的界面.其它功能包括BLOB 和 MEMO 编辑,大型 SQL 脚本支持,用户进程管理等.该软件资源开放

图形化界面设计软件简要介绍

[摘要]:面向使用者的系统工程设计,其目的是要准确.快速地在设计者和使用者之间传递信息和实现功能,也是优化产品性能来适应大众的操作能力,减轻使用者的认知负担.成功的系统工程设计能使得图形化界面更科学合理,更好地满足使用者的需要.对于开发者而言需要主要如下几个方面:1,对系统工程应用需要有准确的定位:2,利用设计开发软件提高GUI运行速度:3,系统开发时对系统工程的可扩展性和提供文档帮助. 1. 前言: 随着计算机技术的发展,软件技术突飞发展.在工程领域,智能化.自动化的的要求也越来越高.所以对应

【项目4】词典软件

# 1. 介绍 json # 下面是一个存储了单词 name 的释义的 json 格式字符串 # 你可以简单地把它看为一个字典,并且我们可以用标准库 json 轻松把这个字符串转为 python dict # 它的结构和字典一样 # 2. 介绍数据含义 # 这个 释义 是从爱词霸的服务器上获取的,我们先不管获取的方法,先关心里面存储的数据的含义 # word_name 是被查询的单词 # is_CRI 不需要关心,可以忽略 # exchange 是一个字典,包含了单词的所有形式(复数.过去时等)