Welcome 微信登录

首页 / 操作系统 / Linux / Ubuntu下PyGtk的开发之 Base.py

  大致感觉PyGtk不难,使用上和Tkinter之类的都差不多。网上说当把逻辑代码和视图代码结合在一起时,PyGtk做的是最好的,应该能在以后的学习中体会到吧。但现在对某些东西仍有疑惑。  PyGtk2.0是一个Python模块的集合,提供了对GTK+2.X的Python接口。  GTK(GIMP Toolkit)是创建图形用户界面的一个库,完全用C语言编写。Base.py#!/usr/bin/envpython
#examplebase.py
import pygtk
pygtk.require2.0
import gtk

class Base:

def __init__self:
  self.window=gtk.Windowgtk.WINDOW_TOPLEVEL
  self.window.show

def mainself:
  gtk.main

print __name__

if __name__=="__main__":
  base=Base
  base.main
为什么可以“import gtk”呢?gtk是gtk.py文件吗?好像不是,我没找到。在Windows和Linux两个操作系统之下注释掉“import pygtk”和“pygtk.require2.0”程序照常可以运行,也就是说pygtk根本没用上。可以看见代码里的调用也只是调用了gtk。但gtk是C语言写的啊,为什么在python里没通过pygtk却直接可以调用访问了呢?搞不清pygtk和gtk之间的关系,和各自的组织结构。
------------------------------------------------------ 去食堂买饭等待的时候突然想起了Eclipse,为什么不用CTRL+CLICK的方式点击查看gtk文件呢?这样不就知道它的位子了么?事实证明这招不好使,最终是使用Debug的方法跟踪找到的。“import gtk”其实是执行了“C:Python25Libsite-packagesgtk-2.0gtk\__init__.py”文件。
在这个文件中有一句“from gtk import _gtk”导入了gtk文件夹下的_gtk.pyd文件。下面还有一句“from gtk._gtk import *”是从这个.pyd文件中导入的。其中包含了“Label”,“Button”等等等等。
“gtk.Window(gtk.WINDOW_TOPLEVEL)”中的“Window”和“WINDOW_TOPLEVEL”都来自于gtk中的gdk,可以使用“from gtk import gdk”“dir(gdk)”查看。