gri*_*yvp 6 python pyobjc pygtk tkinter pyqt
Python有很多GUI库:tkinter,wxWidgets,pyGTK等.但是所有这些GUI都需要安装并且非常重量级,因此部署最终用户GUI python应用程序会在提到的GUI库上进行中继时有点复杂.
最近,我考虑过python的内置ctypes模块.从理论上讲,可以创建一个纯的python GUI库,用于ctypesWindows(windll.user32.CreateWindowEx等),MacOS上的原生pyObjC和gnome/kde上的pyGTK/pyQt.这样的图书馆存在吗?如果没有,你认为这个想法有什么问题?
Cor*_*erg 11
从Python 2.7和3.1开始,Tk看起来会好很多.
http://docs.python.org/dev/whatsnew/2.7.html#ttk-themed-widgets-for-tk
"Tcl/Tk 8.5包含一组主题小部件,它们重新实现了基本的Tk小部件,但具有更可定制的外观,因此可以更接近本机平台的小部件.这个小部件集最初称为Tile,但是被重命名为Ttk(用于"主题Tk")被添加到Tcl/Tck 8.5版本中."
Tkinter是python标准发行版的一部分,默认安装.期望在所有首先有图形显示的python安装上找到它.
"纯python gui库"的概念是错误的,因为最终你将使用系统级调用和小部件,可能是通过ctypes,但这并没有改变这样一个事实:如果你开始实现你的想法,你最终将成为wxPython
主要是错误的是它重新发明了GTK,Tk,Wx,QT及其同类制造商已经完成的车轮.虽然纯python GUI在技术上是可行的,而诸如anygui之类的项目确实尝试了类似的东西,但这样做的收益相对较少.
本机工具包还可以更好地覆盖底层平台之间的差异(本机对话框等).这意味着工具包允许您编写一个可移植的应用程序,该应用程序几乎不需要任何特定于平台的代码 - 其中大部分都是由底层工具包抽象出来的.
Windows上的py2exe和任何linux方法之类的分发机制允许您将DLL与应用程序捆绑在一起,因此您可以创建一个安装程序,删除它所需的任何本机组件.但是,实际上没有通用的跨平台方法,因此您需要为每个平台维护单独的安装程序.
| 归档时间: |
|
| 查看次数: |
4766 次 |
| 最近记录: |