[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