文章目录
- 介绍与准备
-
- 声明
- Tkinter 指南
- 开发环境
- Word 转手写体代码
-
- 主程序
-
- 背景图像
- 字体下载与设置
- 主程序啦!!
- 代码测试与结果
- 链接 Word 文档
-
- 从 Word 文档获取输入的代码
- 新建一个 Word 测试文档
- 代码调试
- 代码运行准备
- GUI 设计
-
- 整体代码
-
- GUI 骨架
- 文件准备
- 代码
- 软件的使用与后续开发
-
- 使用效果
- 后续完善
介绍与准备
声明
要源码请关注后留言
不用做任何商业用途
赠人玫瑰,手有余香,点个赞再走呗
Tkinter 指南
这里使用的是 Tkinter 来开发一款软件的,如果不是用 Tkinter,请移步。
首先推荐一些 Tkinter 的教程吧:
Tkinter GUI 01
Tkinter GUI 02
Tkinter GUI 03
Tkinter GUI 04
Tkinter GUI 05
Tkinter GUI 06
Tkinter GUI 07
Tkinter GUI 08
然后,是一些有用的参考资料和书籍的下载地址:
Python GUI Tkinter 参考资料
再安装如下模块;
- handright
- docx:用于打开 Word
- PIL:用于保存图像,创建手写字体模板
开发环境
这里使用 Eclipse 的 PyDev 开发我们的 GUI 应用,有关 Eclipse 的内容,可以参阅:
Eclipse 安装教程、PyDev 插件下载教程与有关设置
另外 PyDev 由于是一个插件,所以,其版本更新需要我们重新卸载、再安装。读者们下载了 PyDev 插件之后,过一阵子,就会弹出下面的一个对话框:
主程序
首先,在我们新建的项目中,添加一个 .py 文件,如下所示:
主程序啦!!
之后,我们要往这个文件中,加入我们的主要程序代码,如下所示:
这里要注意, 将手写体弄成 jpg 图片之后,就会保存到一个叫 output 的文件夹中,并以 0 开始,命名图像。这里的 output 文件夹,要事先创建好,否则 错。当然,也可以添加一条代码来防止这样的情况。这条代码是什么呢论区走起~~
代码测试与结果
然后,运行一下我们的代码,会跳出一下错误:
File “E:java-2020-03eclipseworkspaceWord2write_Principleprinciple1.py”, line 7
SyntaxError: Non-UTF-8 code starting with ‘xc4’ in file E:java-2020-03eclipseworkspaceWord2write_Principleprinciple1.py on line 8, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
这是因为,我们的代码的第7句,出现了中文,所以识别不出来。只要在代码的开头,加入一句 或者,再次运行即可。
效果如下:
链接 Word 文档
我们的需求是,输入一个 Word 文档,再将其转换为手写体。而不是每一次运行,都要设置 text 变量。为了实现这个目的,我们需要另外写一个程序,来读写 Word 文档。
从 Word 文档获取输入的代码
再次新建一个 .py 文件,命名为 principle2.py ,并键入如下代码:
新建一个 Word 测试文档
为了保证程序的正确运行,我们还需要在项目文件夹中,创建一个新的文件夹,命名为 input。之后,再在里面添加一个 .docx 文件,命名为 demo.docx,输入以下文字:
[’ 谜题一个 ‘, ’ 鸟飞鹅跳,月上中梢,目上朱砂,已异非巳,勺旁傍白,万事开头,工戈不全,雨下挚友,称断人和。’, ’ 答案是:—— 我要用自己的方式来爱你!!!’]
之后,在按一下 F5(step into吧,好像是),再按一次(共两次),就可以结束了。有关调试的内容,就不再过多说明了。
代码运行准备
测试完毕,效果可嘉。为了让上述的 txt 变量读入到 principle1.py 中,以供我们的程序使用,我们还要在 principle1.py 文件中,添加一些代码,以保证程序的运行,如下:
再次运行 principle1.py,在 console 那里,可以看到程序运行总时间为 4.211 秒,不知道是字数多了,还是程序变复杂的缘故知道答案吗论区提问一下吧!
来看一下输出结果,在 output 文件夹中,打开图像 0.jpg:
GUI 设计
从代码中,可以看出,我们需要的输入变量一共有:
text:docx 文件路径或者直接输入
background:背景
fontsize:字体大小
font :字体
line_spacing : 行间距
fill : 字体颜色
当然,还有其他的。为了简化设计,我们将不考虑其他东西~
为此,我们画出 GUI 的草图,如下所示:
代码
首先是 fun1.py:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!