天天看點

gtk+3.0的環境配置及基于gtk+3.0的python簡單樣例

/*********************************************************************
 * Author  : Samson
 * Date    : 06/25/2014
 * Test platform:
 *              Mint 15
 *              GNU bash, version 4.2.45
 * *******************************************************************/      

非常多時候在Gnu Linux環境下會同一時候有gtk 2.0與gtk 3.0的存在,由于有的程式是基于2.0的,而有一些是基于3.0的,是以在進行基于gtk的程式設計時。要先進行版本号的切換。

配置gtk的環境為gtk+-3.0, 而對應的2.0為s/gtk+-3.0/gtk+-2.0/g:

若沒有Gtk 3.0的,進行安裝:

ufo@ufo:~/test$ sudo apt-get install libgtk-3-dev

ufo@ufo:~/test$ pkg-config --cflags gtk+-3.0

-pthread -I/usr/include/gtk-3.0 -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include

-I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/pixman-1 -I/usr/include/libpng12  

ufo@ufo:~/test$ pkg-config --libs gtk+-3.0

-lgtk-3 -lgdk-3 -latk-1.0 -lgio-2.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lpango-1.0 -lcairo -lgobject-2.0 -lglib-2.0  

一個簡單的樣例,建立一個窗體,且在窗體中加入了一個開關button:

#!/usr/bin/python

from gi.repository import Gtk

class MyWindow(object):

        def __init__(self,title,width,height):

                self.window = Gtk.Window()

                self.window.set_title(title)

                self.window.set_default_size(width,height)

                self.window.connect("destroy",lambda q:Gtk.main_quit())

                self.switch = Gtk.Switch()

                self.window.add(self.switch)

                self.window.show_all()

        def main(self):

                Gtk.main()

if __name__ == '__main__':

        gui=MyWindow('myninewindow',600,400)

        gui.main()

運作效果為:

gtk+3.0的環境配置及基于gtk+3.0的python簡單樣例

與2.0基本的差别是非常多類的首字母變為了大寫的了,很多其它的差别對于俺這種剛開始學習的人來說,不好體會全然的 :_(