[python] GUI - GTK

Petr Mach gsl na seznam.cz
Pátek Červenec 15 08:15:48 CEST 2005


VANĚK Petr napsal(a):
>>Osobně se mi zdá Tk uz ponekud zastarale. Neni prinosnejsi 
>>investovat do 
>>uceni se neceho modernejsiho? Osobne doporucuji GTK. Tim ze 
>>clovek pozna
>>tutuo knihovnu nic neztrati ani kdyz pak zacne pouzivat treba 
>>jazyk C a
>>muze ji bez problemu pouzivat pod Linuxem i Windows, a i na dalsich
>>platformach, ale s tim nemam osobni zkusenosti.
> 
> 
> inu. v jadru s tim souhlasim. Je tu ale jedna, vlastne dve, zaludnost. Tk je - buhvi proc -
> stale standardni GUI toolkit v Pythonu [1]. A druha, osobni, Gtk je skoro stejne peklo.
> Konec invektivy. ;)
> 
> poznamka [1] - sice to vyvojari tvrdi, ale na macu uz treba Tk implicitne neni...

No, proc je TK standardni toolkit v Pythonu nechapu. Evidentne se nikomu
nelibi, protoze navzdory tomu, ze je standardni soucasti a jeho pouzti
je tak nejmene problemove, tak se temer nepouziva. Imho by se mel
vyradit, jen zbytecne Python nafukuje.

Co se ti nelibi na GTK? Ja jsem koukal na vic toolkitu a GTK mi vychazi
jednoznacne nejlepe. Urcite to neni zadne peklo. Je schopny, dobre
se v nem programuje, je dobre zdokumentovany, je dobre podporovany a 
multiplatformni, je rozsireny, ma dobrou licenci. Aktivne ho pouzivam
a nejsem si vedom zadneho nedostatku.

Jen pro srovnani, tady je kompletni priklad demonstracni ukazky 
zachazeni s CheckBoxy v PyGTK.

= BEGIN =============================================================

#!/usr/bin/python
# -*- coding: utf-8 -*-
import gtk

# obsluha udalosti

def printStatus(button, checks):
     for check in checks:
         if  check.get_active():
             stat = "je zatrĹžen."
         else:
             stat = "nenĂ­ zatĹžen."

         print check.get_label(), stat

def quit( event, data=None ):
     gtk.main_quit()

# GUI

checks = []
checks.append( gtk.CheckButton( label="PrvnĂ­"  ))
checks.append( gtk.CheckButton( label="DruhĂ˝"  ))
checks.append( gtk.CheckButton( label="Třetí"  ))
checks.append( gtk.CheckButton( label="Čtvrtý" ))
checks.append( gtk.CheckButton( label="PĂĄtĂ˝"   ))

button = gtk.Button( label="Vytiskni stav" )
button.connect( 'clicked', printStatus, checks )

vbox = gtk.VBox()
for check in checks: vbox.pack_start( check )
vbox.pack_start( button )

win = gtk.Window()
win.set_border_width( 10 )
win.connect( 'destroy', quit )
win.add( vbox )
win.show_all()

# cekani na udalost

gtk.main()

= END ===============================================================

Vystup je takovy:

[wraith na frodo ~]$ python checks.py
PrvnĂ­ je zatrĹžen.
DruhĂ˝ nenĂ­ zatĹžen.
Třetí je zatržen.
Čtvrtý není zatžen.
PĂĄtĂ˝ je zatrĹžen.

Obrazek aplikace posilam prilohou. Vskutku si myslim, ze GTK toolkit
je snadny na pouzivani (a to nezminuji glade, v kterem si GUI navrhnes
vizualne a v pythonu dopises obsluhu udalosti) i nauceni se.
------------- další část ---------------
Netextová příloha byla odstraněna...
JmĂŠno: check.png
Typ: image/png
Velikost: 2596 bytes
Popis: [Şådný popis není k dispozici]
Url : http://www.py.cz/pipermail/python/attachments/20050715/dfd1ede9/check.png


Další informace o konferenci Python