1.介绍
Python属于跨平台的软件,最近想在Linux下翻译文本,但是Linux没发现好用的翻译软件,本来下载了【星际译王】这款软件,但是好像不能联网翻译,只能使用离线的字典进行翻译,所以就想自己做一个联网的翻译软件,那么就有了这个设计。
2.tkinter
tkinter是Python自带的一款GUI界面,这款GUI是比较基础的,就是基本控件都有,但是属性相对较少,很难制作出好看的GUI来,为什么要选择这个GUI框架呢,因为是Python自带的,使用起来比较方便,而且这个软件也是比较简单的一款软件,不需要过于华丽的界面,所以我优先选择了它。
3.设计
其实设计非常简单,这里需要用到两个库分别是【tkinter】和【threading】这两个库,一个是GUI库一个是线程库,线程库主要是为了在翻译的过程中,GUI能够正常工作,今天这一篇先写GUI的设计,下一篇写如何连接Goolge翻译。
今天采用的编辑器是gVim,主要是为了能和Linux基本保持同步。
图1
直接贴代码吧!
import tkinter as tkimport threading translateWindow = tk.Tk() # Window body framMain = tk.Frame(translateWindow) # Create Main fram txtSource = tk.Text(framMain, height=4) # Create Main fram framConfig = tk.Frame(framMain) # Create Main fram txtResult = tk.Text(framMain, height=4) # Source text output def en_translate_cn_run(): var = txtSource.get(1.0, "end") # read source data txtResult.delete(1.0, "end") txtResult.insert("insert", var) # display translate result data pass def en_translate_cn_opt(): txtResult.delete(1.0, "end") txtResult.insert("insert", "翻译中...") en_translate_cn_timer = threading.Timer(0.1, en_translate_cn_run) en_translate_cn_timer.start() pass btnToChTranslate = tk.Button(framConfig, text="TranslateToCh", command=en_translate_cn_opt) # Translate button def ch_translate_en_run(): var = txtSource.get(1.0, "end") # read source data txtResult.delete(1.0, "end") txtResult.insert("insert", var) # display translate result data pass def ch_translate_en_opt(): txtResult.delete(1.0, "end") txtResult.insert("insert", "翻译中...") en_translate_cn_timer = threading.Timer(0.1, ch_translate_en_run) en_translate_cn_timer.start() pass btnToEnTranslate = tk.Button(framConfig, text="TranslateToEn", command=ch_translate_en_opt) # Translate button def window_init(): # Main window config translateWindow.title("EZ Translate Tool") translateWindow.geometry("300x200") framMain.pack() txtSource.pack() framConfig.pack() btnToChTranslate.pack(side="left") btnToEnTranslate.pack(side="right") txtResult.pack() pass if __name__ == '__main__': window_init() translateWindow.mainloop()
复制代码界面整体如下,非常的简洁,不过我觉得够用了,还可以给界面指定并透明,这样更像一个工具!!!
图2
图3
4.总结
用Python写代码还是非常简洁,界面也非常的容易,下一篇就是联网翻译了。
Python现在很火啊
看来楼主是做系列文章了,
期待后续