Python GUI图形界面中Qt和wxWidgets区别是什么?

简介: Python中有很多GUI可视化界面的操作,通过打包成方便我们操作的exe界面

跨平台的GUI工具库,较为有名的当属GTK+、Qt 和 wxWidgets 了。GTK+是C实现的,由于C语言本身不支持OOP,因而GTK+上手相当困难,写起来也较为复杂艰涩。Qt 和 wxWidgets 则是C++实现的,各自拥有庞大的用户群体。

这里客观地搜集了关于Qt 和 wxWidgets 的对比评价。

关于LICENSE

Qt最初由芬兰的TrollTech公司研发,现在属于Nokia(没看错,就是曾经闻名遐迩的手机巨头诺基亚),它的背后一直由商业公司支持,奉行的是双 license 策略,一个是商业版,一个是免费版。这个策略严重限制了Qt的用户群体。据说Nokia收购之后意识到了这个问题,自4.5版本之后采用了LGPL,开发人员可以发布基于免费Qt库的商业软件了。wxWidgets最开始是由爱丁堡(Edinburgh)大学的人工智能应用学院开发的,在1992年开源,一直遵循LGPL。wxWidgets从一开始就是程序员的免费午餐。

关于兼容性

由于Qt使用的是非标准C++,与其它库的兼容性会存在问题,在每个平台的图形界面也并不完全是原生界面( Native GUI),只是透过 theme 去模拟系統上的标准 GUI,所以看起來很像,有些地方则会明显看出破綻。 Qt的执行速度缓慢且过于庞大则是另一个问题。wxWidgets使用的是标准C++,与现有各类工具库无缝连接,在不同平台上也是完全Native GUI,是真正的跨平台。

关于服务和支持

由于Nokia的接盘,Qt提供了一系列完整的文档和RAD工具,并提供最为完整的平台支持,对于移动终端的支持最为完善。Qt库也是所有的GUI工具库中最为面向对象化的,同时也是最为稳定的。wxWidgets因为缺乏很好的商业化支持,开发文档、资源相对较为匮乏。由于是偏重考虑MFC程序的跨平台迁移,wxWidgets面向对象封装做得差强人意。

wxWidgets的主体是由C++构建的,但你并不是必需通过C++才能使用它。wxWidgets拥有许多其它语言的绑定(binding),比如 wxPerl,wxJava,wxBasic,wxJavaScript,wxRuby等等,wxPython 就是 Python语言的 wxWidgets 工具库。

相关文章
|
2天前
|
开发工具 Python
Python中return和yield的区别,面试官不讲武德
Python中return和yield的区别,面试官不讲武德
|
4天前
|
存储 机器学习/深度学习 数据安全/隐私保护
Python GUI 设计的一个简单例子
Python GUI 设计的一个简单例子
13 1
|
4天前
|
开发者 索引 Python
【Python 基础】remove、del和pop有什么区别?
【5月更文挑战第8天】【Python 基础】remove、del和pop有什么区别?
|
4天前
|
存储 Python
【Python 基础】“func”和“ func()”有什么区别?
【5月更文挑战第6天】【Python 基础】“func”和“ func()”有什么区别?
|
4天前
|
Python
【Python 基础】Python中的实例方法、静态方法和类方法有什么区别?
【5月更文挑战第6天】【Python 基础】Python中的实例方法、静态方法和类方法有什么区别?
|
4天前
|
Python
【Python 基础】“is”和“==”有什么区别?
【5月更文挑战第6天】【Python 基础】“is”和“==”有什么区别?
|
4天前
|
Python
【Python 基础】列表(list)和元组(tuple)有什么区别?
【5月更文挑战第6天】【Python 基础】列表(list)和元组(tuple)有什么区别?
|
4天前
|
开发框架 数据可视化 编译器
Qt的魅力:探索跨平台图形界面开发之旅
Qt的魅力:探索跨平台图形界面开发之旅
32 1
|
4天前
|
Python
在Python Web开发过程中:`is`和`==`在Python中的区别是什么?
【4月更文挑战第25天】Python的`is`与`==`用于比较。`is`检查对象是否相同(内存地址一致),而`==`检查值是否相等。例如,`a = [1, 2, 3]`,`b = a`,`c = [1, 2, 3]`,则`a is b`和`a == b`均为True,但`a is c`为False,`a == c`为True,因`a`和`b`引用同一对象,而`a`和`c`值虽等但对象不同。
12 1
|
4天前
|
开发框架 程序员 开发者
Python GUI编程:从入门到精通3.2 GUI编程:学习使用Tkinter、PyQt或wxPython等库创建图形用户界面。
Python GUI编程:从入门到精通3.2 GUI编程:学习使用Tkinter、PyQt或wxPython等库创建图形用户界面。

推荐镜像

更多