gtk.Widget - tüm PyGTK Widget araçları için temel sınıftır.Yani bir gtkWidget aracı aynı zamanda gtkWidget özelliği taşır ve onun ayar ve özelliklerini kapsar.
Bu açıdan öncelikle sıkça kullanılan gtkWidget ayar , özellik ve sinyallerini hakkında bilgi vermeye çalışacağım.
Başlıca gtkWidget özellikleri get_allocation()Başlangıç , yükseklik ile boylam , enlem bilgilerini bir liste şeklinde öğrenmemizi sağlar.
>>> x = gtk.Window()
>>> x.get_allocation()
gtk.gdk.Rectangle(-1, -1, 1, 1)
>>> x.get_allocation()[0]
-1
hide()GtkWidget aracının haritalanmış görünümden gizlenmesini sağlar
hide_all()Gtk.Widget varsa alt widget araçlarıyla birlikte gizlenme sağlar.
show_all()Gtk.Widget varsa alt widget araçlarıyla birlikte gösterilmesini sağlar.
show()Belirtilen widget aracının gösterilmesini sağlar.
destroy() Gtk.Widget aracının haritalanmış alandan silinmesini sağlar.
set_state(gtk.StateType)gtk.Widget aracının belirtilen durum biçiminde belirtilmesini sağlar başlıca durum biçimleri;
gtk.STATE_NORMAL > Olağan sekilde gösterimi.
gtk.STATE_ACTIVE > Etkin araç gösterimi.
gtk.STATE_PRELIGHT > İmleç üzerinde iken.
gtk.STATE_SELECTED > Seçilmiş araç gösterimi.
gtk.STATE_INSENSITIVE > Kullanıcı girdi ve eylemlerine tepkisizlik.
veya gtk3 üzerine geliştirme depolarında gtk.StateType.NORMAL gibi benzeri şekillerde belirtilebilir.
set_sensitive( ) True veya
False değerleriyle widgetin kullanıcı girdilerine duyarlı veya duyarsız olmasını sağlar.
set_size_request(genişlik, yükseklik)Araç için geçerli olacak boyutlandırılamaz en düşük genişlik ve yükseklik oranının belirtilmesini sağlar.
Tanımsız değer olarak ise -1 kullanılır.
get_size_request Araç için geçerli olacak boyutlandırılamaz en düşük genişlik ve yükseklik oranının bilgisini verir.
modify_fg(state, color)Ön planda bulunan alanın State tipi belitrilerek gtk.gdk.Color ile renk bilgisi eklenerek kullanılır.
modify_bg(state, color)Arka planda bulunan alanın State tipi belitrilerek gtk.gdk.Color ile renk bilgisi eklenerek kullanılır.
modify_base(state, color)Alt alan için bulunan alanın State tipi belitrilerek gtk.gdk.Color ile renk bilgisi eklenerek kullanılır.
Renk değişimine Örnekler:
label.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse("#D5D5D5"))
label.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("#000000"))
render_icon(stock_id, size, detail=None)Herhangibi bir gtkWidget aracından depo tanımlı simge üretimi sağlar.
Stock tanımlı simgelere ulaşmak için bağlantıyı,
http://www.pygtk.org/docs/pygtk/gtk-stock-items.html
veya komutu kullanabilirsiniz.
gtk.stock_list_ids()
Örnek:
pixbuf = notebook.render_icon(gtk.STOCK_MEDIA_PLAY,gtk.ICON_SIZE_MENU,None)
Gtk Icon Size biçemlemeleri;
gtk.ICON_SIZE_INVALID
gtk.ICON_SIZE_MENU
gtk.ICON_SIZE_SMALL_TOOLBAR
gtk.ICON_SIZE_LARGE_TOOLBAR
gtk.ICON_SIZE_BUTTON
gtk.ICON_SIZE_DND
gtk.ICON_SIZE_DIALOG
Rakamsal olarak 1,5 değerleri arası:
pixbuf = notebook.render_icon(gtk.STOCK_MEDIA_PLAY,3,None)
set_tooltip_text(text)Girilen metin bilgisini bilgilendirme baloncuğu ile gösterir.
set_tooltip_markup(markup) Pango Markup Dilinde yazılmış betin bilgisini bilgilendirme baloncuğu ile gösterir.
Başlıca Pango Markup Taglarıb _ Girdinin kalın gösterimini sağlar
big _ Girdinin büyük görünmesini sağlar.
i _ Girdinin eğik görünmesini sağlar
small _ Girdinin küçük görünmesini sağlar
u _ Girdinin altını çizer.
Tüm diğer seçeneklere ve bilgiye bağlantıdan ulaşabilirsiniz.
http://www.pygtk.org/docs/pygtk/pango-markup-language.html
get_tooltip_markupTanımlandırılmış baloncuktaki markup bilgisini verir.
get_tooltip_textTanımlandırılmış baloncuktaki metin bilgisini verir.
add_eventsKullandığımız veya kullacağımız gtkWidget'i istediğimiz sinyal yapısına sahip olmayabilir bu gibi durumlarda yapmamız gerekende işte tam da bu özellikte yatıyor. Buradan(http://www.pygtk.org/docs/pygtk/gdk-constants.html#gdk-event-mask-constants) ulaşabiliceğemiz
event maskeleriyle ihtiyaç duyduğumuz sinyalin gtk Aracına eklenmesini sağlıyabiliriz.
widget.add_events(gtk.gdk.ALL_EVENTS_MASK)
get_window()gtk.gdk.Window bilgisini geri döner
Gtk Araçları Üzerindeki İmleç Simgelerini Değiştirmek, get_window ile gtk aracımızı edindikten sonra
gdk üzerinden
Cursor aracımızı oluşturabiliriz,
İmleç biçemleri listesini ve
Cursor aracı hakkında detaylı bilgiye bağlantıdan ulaşabilirsiniz.
http://www.pygtk.org/docs/pygtk/class-gdkcursor.html
örnek:
imlec = gtk.gdk.Cursor(gtk.gdk.TOP_SIDE)
draw = draw.get_window()
draw.set_cursor(imlec)
Örnek gtk Widget Sinyali Kullanımı "button-press-event" def callback(widget, event, kullanıc_girdisi1, ...)
İmleç ile tıklanma bilgisini event üzerinden öğrenmemizi sağlar.
event.button rakamsal değerleri 1 ise sol tuş tıklaması
2 ise orta tuş tıklaması
3 ise sağ tuş tıklaması
event.type ve maskları hakkında detaylı bilgiye bağlantıdan ulaşabilirsiniz
http://www.pygtk.org/docs/pygtk/class-gdkevent.html
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# vim: ts=4:sw=4
import gtk
def duzenle_imlec(arac,imlecne):
draw = arac.get_window()
imlec = gtk.gdk.Cursor(imlecne)
draw.set_cursor(imlec)
def tiklama(arac,event):
print event.type,event.button
if event.button == 1:
arac.modify_bg(gtk.STATE_PRELIGHT, gtk.gdk.color_parse("#e2c852"))
arac.set_tooltip_text("Bilgi Verir")
duzenle_imlec(arac,gtk.gdk.LEFT_SIDE)
if event.button == 3:
arac.modify_bg(gtk.STATE_PRELIGHT, gtk.gdk.color_parse("#8d8d8d"))
arac.set_tooltip_markup("<big><b> Önemli Bilgi Verir</b></big>")
duzenle_imlec(arac,gtk.gdk.SAILBOAT)
pencere = gtk.Window()
pencere.connect("delete-event",gtk.main_quit)
button = gtk.Button("\t\tTuşa Tıkla\t\t\t")
button.connect("button-press-event",tiklama)
pencere.add(button)
pencere.show_all()
gtk.main()
Tüm widget ayar, özellik ve sinyalleri için bağlantıdan yararlanabilirsiniz.
http://www.pygtk.org/docs/pygtk/class-gtkwidget.html