gtk.Widget Sıkça Kullanılan Özellikleri

Başlatan hitokiri, 21 Temmuz 2012 - 17:02:32

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

hitokiri

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_markup

Tanımlandırılmış baloncuktaki markup bilgisini verir.

    get_tooltip_text

Tanımlandırılmış baloncuktaki metin bilgisini verir.
      add_events

Kullandığı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

harun252525

Çok teşekkür ederim verdiğiniz bilgiler için.
Kod Yazmak Bir Şiirdir.