pygtk ipython parasite quick tour
play

PyGTK + ipython + parasite quick tour chrysn <chrysn@fsfe.org> - PowerPoint PPT Presentation

PyGTK + ipython + parasite quick tour chrysn <chrysn@fsfe.org> 2010-11-11 GTK+ Language bindings Getting started More GTK features The boring stuff at the beginning of a presentation G IMP T ool k it (created 1997 for GIMP)


  1. PyGTK + ipython + parasite quick tour chrysn <chrysn@fsfe.org> 2010-11-11

  2. GTK+ Language bindings Getting started More GTK features

  3. The boring stuff at the beginning of a presentation ◮ G IMP T ool k it (created 1997 for GIMP) ◮ written in C ◮ works on X11, Windows and OS X (?) ◮ GTK ⊃ GObject ⊃ GLib

  4. GTK+ Language bindings Getting started More GTK features

  5. Python 1 import gtk 2 3 w = gtk . Window () 4 w. s h o w a l l () 5 6 gtk . main ()

  6. C 1 #include < gtk / gtk . h > 2 3 main ( int argc , char ∗ argv [ ] ) { int 4 GtkWidget ∗ w; 5 6 g t k i n i t (&argc , &argv ) ; 7 8 w = gtk window new (GTK WINDOW TOPLEVEL) ; 9 g t k w i d g e t s h o w a l l (w) ; 10 11 gtk main ( ) ; 12 13 return 0; 14 }

  7. Vala 1 using Gtk ; 2 3 main ( s t r i n g [ ] args ) { s t a t i c int 4 Gtk . i n i t ( r e f args ) ; 5 6 var w = new Window ( ) ; 7 w. s h o w a l l ( ) ; 8 9 Gtk . main ( ) ; 10 11 return 0; 12 }

  8. Ruby 1 r e q u i r e ’ gtk2 ’ 2 3 Gtk . i n i t 4 5 w = Gtk : : Window . new 6 w. s h o w a l l 7 8 Gtk . main

  9. others ◮ C# ◮ Java ◮ JavaScript ◮ Perl ◮ R ◮ Lua ◮ Guile ◮ PHP ◮ Ada ◮ OCaml ◮ Haskell ◮ FreeBASIC ◮ D

  10. GTK+ Language bindings Getting started More GTK features

  11. Tools aptitude install python-gtk2 ipython gtkparasite python-gtk2-doc

  12. Working environment GTK MODULES=gtkparasite ipython import gtk (the Parasite window can be ignored for the moment)

  13. Getting help 1 w = gtk . Window () 2 3 w. < tab > 4 w. a c t i v a t e w. a c t i v a t e d e f a u l t . . . 5 6 w. props . < tab > 7 w. props . a c c e p t f o c u s w. props . allow grow . . . 8 9 help (w) # l i s t s s i g n a l s , p r o p e r t i e s and methods

  14. Extending the demo program 1 l = gtk . Label ( ”My l a b e l ” ) 2 b = gtk . Button ( ”My button ” ) 3 4 v = gtk . VBox () 5 v . p a c k s t a r t ( l ) 6 v . p a c k s t a r t (b) 7 8 w. add ( v ) 9 10 w. s h o w a l l () 11 12 w. props . t i t l e = ”A demo program”

  15. Signals 1 def add something ( widget ) : 2 l . props . l a b e l += ” , and c l i c k e d ” 3 4 b . connect ( ’ c l i c k e d ’ , add something )

  16. A tour through the widget library gtk-demo pygtk-demo

  17. GTK+ Language bindings Getting started More GTK features

  18. UIManager definition 1 < ui > 2 < menubar name=”MenuBar” > 3 < menu a c t i o n=” F i l e ” > 4 < menuitem a c t i o n=”New” / > 5 < s e p a r a t o r / > 6 < menuitem a c t i o n=” Quit ” / > 7 < /menu > 8 < menu a c t i o n=”Help” > 9 < menuitem a c t i o n=”About” / > 10 < /menu > 11 < /menubar > 12 < t o o l b a r name=”ToolBar” > 13 < t o o l i t e m a c t i o n=”New” / > 14 < /toolbar > 15 < /ui >

  19. UIManager usage 1 import gtk 2 3 w = gtk . Window () 4 5 def do new ( ∗ args ) : 6 print ”new” 7 8 def do about ( ∗ args ) : 9 print ” about ”

  20. UIManager usage 1 actiongroup = gtk . ActionGroup ( ’ d e f a u l t ’ ) 2 actiongroup . a d d a c t i o n s ( [ 3 ( ’ F i l e ’ , None , ’ F i l e ’ ) , 4 ( ’New ’ , gtk .STOCK NEW, None , None , 5 None , do new ) , 6 ( ’ Quit ’ , gtk . STOCK QUIT , None , None , 7 None , gtk . main quit ) , 8 ( ’ Help ’ , None , ’ Help ’ ) , 9 ( ’ About ’ , gtk .STOCK ABOUT, None , None , 10 None , do about ) , 11 ] ) 12 13 uiman = gtk . UIManager () 14 uiman . i n s e r t a c t i o n g r o u p ( actiongroup , 0) 15 uiman . a d d u i f r o m f i l e ( ’ uimanager . xml ’ )

  21. UIManager usage 1 vbox = gtk . VBox () 2 vbox . p a c k s t a r t ( uiman . get widget ( ’ /MenuBar ’ ) , 3 expand=False ) 4 vbox . p a c k s t a r t ( uiman . get widget ( ’ /ToolBar ’ ) , 5 expand=False ) 6 w. add ( vbox ) 7 8 w. s h o w a l l () 9 10 accelgroup = uiman . g e t a c c e l g r o u p () 11 w. add accel group ( accelgroup ) 12 13 w. connect ( ’ destroy ’ , gtk . main quit ) 14 15 gtk . main ()

  22. GTK builder 1 import gtk 2 3 b u i l d e r = gtk . B u i l d e r () 4 b u i l d e r . a d d f r o m f i l e ( ’ b u i l d e r . xml ’ ) 5 6 window = b u i l d e r . g e t o b j e c t ( ’ MainWindow ’ ) 7 8 window . s h o w a l l () 9 10 gtk . main ()

  23. Glib/GObject events 1 window . connect ( ’ n o t i f y : : is − a c t i v e ’ , 2 t o g g l e p a u s e s t a t u s ) 3 4 g l i b import 5 6 g l i b . i d l e a d d ( r u n a b i t l a t e r ) 7 8 g l i b . io add watch ( s o m e f i l e . f i l e n o () , 9 g l i b . IO IN , read more data )

  24. Reference GTK library reference http://library.gnome.org/devel/pygtk/stable/ GObject subclassing http://www.pygtk.org/articles/subclassing-gobject/ sub-classing-gobject-in-python.htm

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend