pygtk入門 1 第乙個視窗

2021-08-31 17:08:28 字數 1629 閱讀 7464

#!/usr/bin/env python

import pygtk

pygtk.require('2.0')

import gtk

class base:

def __init__(self):

self.window = gtk.window(gtk.window_toplevel)

self.window.show()

def main(self):

gtk.main()

print __name__

if __name__ == "__main__":

base = base()

base.main()

第一行#!/usr/bin/env python指定該程式由python解析執行

第5-6行:

import pygtk

pygtk.require(』2.0』)

import gtk

區分安裝在系統內的不同版本的pygtk,這些行定義了我們要使用pygtk的2版本的主版本,防止使用安裝在系統內的更早版本,並啟動gtk+的初始化過程,包括gtk_init()

第9-15行

class base:

def __init__(self):

self.window = gtk.window(gtk.window_toplevel)

self.window.show()

def main(self):

gtk.main()

其中def __init__(self)中, __init__()函式建立乙個頂層視窗,並指揮gtk+顯示它 :self.window.show()

11行的self.window = gtk.window(gtk.window_toplevel),使用 gtk.window_toplevel引數,定義了該窗體在視窗管理的

裝飾風格和位置,比建立乙個0*0大小的視窗,沒有子視窗的視窗預設為

200*200

14-15行:

def main(self):

gtk.main()

第14-15行定義了main(),呼叫pygtk的main()函式,包括gtk+ main事件迴圈過程控制滑鼠和鍵盤事件以及視窗事件

第18-20行:

if __name__ == "__main__":

base = base()

base.main()

確保在程式是由python直接執行,而不是匯入到python直譯器執行的情況下,新的base類例項被建立,並將引數存在變數 base中,它將包括main()方法來啟動gtk+事件處理迴圈

這幾行讓程式自動啟動,如果直接呼叫或當做python直譯器的引數f執行,在這些情況下,包括在python變數__name__ 的程式名將會是__main__,並且18-20行**將被執行。如果程式使用import語句,被載入到乙個執行的python虛擬機器,18-20行沒被執行。

第19行建立乙個base類的例項叫base,做為執行結果,乙個gtk.window被建立和顯示,

第20行呼叫base類的main()方法,啟動乙個gtk+事件處理迴圈,當控制器檢測到事件,gtk+將睡眠等待x事件的發生,在上述**中,事件被忽略

第乙個視窗程式

程式截圖 程式 include lresult callback wndproc hwnd,uint,wparam,lparam int winapi winmain hinstance hinstance,hinstance hprevinstance,pstr szcmdline,int icm...

第乙個視窗程式

includeint winapi winmain hinstance hinstance,應用程式當前例項的控制代碼。hinstance hprevinstance,win16留下的廢物現在已經不用了 lpstr lpcmdline,命令列引數 int ncmdshow 主視窗初始化時的顯示方式 ...

第乙個入門例子

1 配置thinkphp 2 嘗試控制器和檢視 1 資料庫 在開始之前,我們首先在資料庫thinkphp中建立乙個think data資料表 以mysql資料庫為例 create table if not exists think data id int 8 unsigned not null au...