要了解Tkinter,首先要从Tcl编程语言提及。Tcl语言全称是“Tool Command Language”,是John Ousterman在1980年代建立的一种解释型编程语言,当时John Ousterman正在加州大学Berkeley分校任职,须要一种相对简明的开发工程工具的编程语言,因此他就用C语言写了这个解释型语言,感受故事是否是有点像Python!css
接下来,他又用C结合Tcl写了个专门用于GUI编程的库,叫着Tk。当年这个Tcl/Tk在1980、1990年代但是很是的流行,尤为是在学术界、工程界和Unx程序员中。html
而Tkinter又是什么呢?前端
咱们知道Python最先是在1994年发行其1.1版本的,标准库里须要各方面的库,包括文本处理、图像处理等等,固然也不能少了GUI。Guido van Rossum(Python语言创始人)以为Tk这个库现成的,并且还挺好用,就再也不另造轮子了。他用C语言写了个在Python中能够调用Tk的接口,再把Tcl/Tk一块儿打包在标准库里,这样Python就能够实现GUI的开发功能。而Python中的这个接口,就是Tkinter。程序员
你是否是会说“怎么能这样!”, 其实呢,这个也很正常啊,好东西,要你们一块儿分享嘛!不只Python里是这么直接调用Tk库,Perl、Haskell里面的GUI库也是这个Tcl/Tk。编程
了解了上面这段Tcl、Tk和Tkinter的历史,咱们再来谈谈这些是否值得学习。服务器
其实,任何技术的选择与否,都是看这种技术的特色是否适合你的需求场景。对于Tkinter来讲,它的特色大体是这么几个:网络
Python标准库里缺省自带框架
这个Tkinter能够说,就至关于Python事实上的标准GUI库。有啥好处呢?有Python的地方就有Tkinter,不用另外找第三方库单独安装,从而避免一堆兼容、版本等等的问题,这个对于初学者就比较友好。编程语言
Tkinter的API比较稳定工具
十几年前开发的工具,如今基本还能运行。Tcl/Tk从1990年代中后期,更新就很是慢了(基本就没变化),Tcl/Tk8.5版本一直用,直到2012年才憋出个8.6版本。更新慢也有好处,写的程序不会过几年就很差用了。
Tkinter就是个单纯的GUI库
Tkinter就是个单纯的GUI库,没有其余东西,真正要实现什么功能,都是依赖Python其余的库。不像PyQT、wxPython这些大而全的框架,什么都要本身弄一套。
简洁
这个特色能够是优势:适合入门、小型应用的开发,可是也致使Tkinter的两大问题,一个是界面相对简陋,虽然如今Tk8.6有所进步,可是比起其余框架仍是有很多差距;另外一个是提供的控件都是比较基础的,稍微复杂一些的,好比HTML显示组件就要另外想办法。
这么看,Tkinter适合什么场合下学习和使用呢?
若是你是初入门的Python程序员,对Python的基本语法已经有所了解,想作点小应用实践实践,那么推荐你能够学习Tkinter。
由于若是一直开发命令行应用,不少时候不直观,成就感比较低,不能促进进一步学习的兴趣。
而若是这个时候,直接上手开发Web应用,还须要了解一堆html、css、js等前端的东西,比较麻烦,并且就算开发出来也就本机跑跑,真要部署到网络上还有域名、服务器一系列的问题。
而学了Tkinter后,立刻能够作一点小应用,好比本地文件管理小工具、看图片的应用、解压小应用……这些小应用的开发,实际上主要是对Python处理这些问题方法和库的了解,Tkinter只是封装一个UI。也就是说你实际上是在进一步学习Python。固然,你也能够不断优化这些小工具,当成本身的定制化工具,甚至能够分享给朋友用用,乐趣无穷。
对于有必定基础的Python程序员,何时适合学下Tkinter呢?
须要写一些小工具的时候,自己是Python程序员,不免工做中须要一些桌面工具,解决些小问题,学习Tkinter绝对是投入少、产出高的选择。好比笔者之前同事作测试,一些配置工做很麻烦,且很易出错,这个时候用tkinter写个配置小工具,就方便不少。
另外一个是能够用Tkinter写一些应用原型。不少时候,一个应用的需求还不是很明确,能够用Tkinter先快速写一个,拿出来你们讨论,进一步明确需求。等真正需求明确了,再根据需求选择技术方案。
总结下:
Tkinter的特色,比较适合初学者学习Python、Python程序员开发一些小工具、Python程序员作原型应用。
而若是你的目标是开发商用的桌面应用程序的话,那Tkinter可能不适用,建议仍是使用PyQT或者直接使用其余语言如C++。
原创做者:VincentPing
内容采用知识共享署名-非商业性使用-相同方式共享 4.0 许可协议
我的公号:Python星球,欢迎来访!