Python开发者写GUI不用Tkinter,为何选择PyQt和wxPython或其他?

不管哪个编程语言,实现一个东西的方式都有很多种,所以大家都会选择最好的来使用。

学习python中有什么不懂的地方,小编这里推荐加小编的python学习群:895,817, 687
有任何不懂的都可以在里面交流,还有很好的视频教程pdf学习资料,大家一起学习交流!

刚看到一篇帖子上面写着:
Python开发者写GUI不用Tkinter,为何选择PyQt和wxPython或其他?_第1张图片

Python开发者写GUI不用Tkinter,为何选择PyQt和wxPython或其他?

    刚接触 Python 一个月。最近在写一个桌面应用,GUI 用的 Tkinter。
   
    写的过程中有几个地方不是很明白,请教一位 Python 比较牛逼的朋友。
    
    他看到后就说,你怎么用 Tkinder 啊?!Tkinter 坑多的数不清,为什么不用 PyQt 或者 wxPython?然后建议我换,之后巴拉巴拉说了一堆 Tkinter 的缺陷。我很不解就百度了一下,发现网上真的很多人说 Tkinter 不好。
    
    我认为 Tkinter 作为 Python 的标准 GUI 库,应该支持是最好的啊?为什么那么多人吐槽,是真的不好吗?

Python开发者写GUI不用Tkinter,为何选择PyQt和wxPython或其他?
那么具体的不好体现在什么地方呢?

以前我用Tkinter写完一个GUI程序,代码估计有一千行吧,这也是我第一次使用Tkinter,使用下来的感受是——累!主要体现在如下几点:

1.Tkinter包含常见GUI模块(或者类,或者框架啥的,比如Java里面的Swing)的主要功能,但是相当一部分是没有的。这样带来的好处是Tkinter给人一种非常简单的感觉,但是也弱化了其功能。举个栗子:Tkinter中输入框较Entry,本想实现输入框中内容被改变时,该内容文字颜色变为红色的功能,但是找了半天,没有,或者是藏得很深,让人误以为没有 。

2.Tkinter的布局是通过代码完成的,要是你的界面上有个几十个控件,写起来也是很酸爽。并且布局的参数,例如padx=3,这个3在Windows和Linux平台上是不一样的,换言之你在Windows上写好的GUI放在Linux上可能就会乱成一锅粥。

Python开发者写GUI不用Tkinter,为何选择PyQt和wxPython或其他?
3.也算不上缺点也不算是优点。Tkinter模块本身是没有下拉列表这个东西的,但是Tkinter包含了ttk,tik之类的主体,这个里面有一个ttk.Combobox。但是这样真的好呢?找个控件要翻遍整个API,就不能集中一下?就不能再Tkinter模块本身中包含一下?

5.既然说到了ttk,那就讲讲这货。Tkinter模块,及Tkinter.ttk模块中,相同名字的控件使用方法,属性列表,控件方法,事件是不一样的,有相同,但大多是不同的。

**6.多人都说Tkinter有主题,也可以编写漂亮的界面,**我就想知道用Tkinter的人有多少还会专门写编写主题代码。反正我用Tkinter就是图个方便,Python自带的优点还是有的。

Python开发者写GUI不用Tkinter,为何选择PyQt和wxPython或其他?
7.Tkinter确实简单易用,但是效率很低。虽说写个带有两Label,两Entry,还有两button的登录界面确实用Tkinter几行代码就解决了,这一波算你Tkinter赢。但是你确定你只是要写这样GUI?最初我的也是这样想的,但是程序越写越复杂,功能越写越完善,这时候就该怀疑人生了。从文档中找控件、方法、事件、属性的时候就知道这个过程有多效率低下。

总结一番,Tkinter想说爱你不容易(这话出自哪里来着?),想要长期在Python上做GUI开发的话,还是换方案吧,里面那么多坑,总有一款适合你。

你可能感兴趣的:(Python)