22 Ağustos 2008 Cuma

Gtk - TextView

İlk yazıyı okuduysanız gtk.TextView objesini inceleyerek başlayabiliriz.

TextView widgetini oluşturmak için tek bir fonksiyon bulunur.
gtk.TextView(buffer=None)
Bir TextView yaratıldığında ona arkadaş TextBuffer ve TextTagTable aletleri de ön tanımlı olarak yaratılır. Eğer bu aletlerden halihazırda olanlar kullanılmak istenirse örneğin şu şekilde değiştirme işlemi yapılabilir.
textview.setbuffer(buffer)
TextView içinden TextBuffer nesnesi alınmak istenirse :
buffer = textview.get_buffer()
TextView nesnesinin salt okunur olmasını:
textview.set_editable(setting)
şeklinde sağlayabiliriz. Buradaki setting True ise kullanıcı metni düzenleyebilir ,False ise düzenleyemez. TextView'ın düzenlenebilir olup olmadığını :
is_editable = textview.get_editable()
şeklinde alabiliriz. TextView düzenlenemez halde olduğunda kullanıcıya kürsör göstermenin manası yoktur. O yüzden genelde bu modda iken:
textview.set_cursor_visible(False)
diyerek kürsörün gözükmesine engel olunur.
Gtk TextView daki metnin uzun satırlarının alt satıra geçirilmesi işlemini otomatik olarak yapabilmenizi sağlar. Bunun için sadece
textview.set_wrap_mode(wrap_mode)
kullanmanız yeterlidir. Burada bahsi geçen wrap_mode 3 değer alabilir bunlar :
  • gtk.WRAP_NONE
  • gtk.WRAP_CHAR
  • gtk.WRAP_WORD

değerleridir. İsimleri kendilerini açıkladığı için bunlar tek tek açıklama yapmıyorum.
TextView nesnelerindeki metni hizalamak, ve nasıl hizalandığı bilgisini almak için şu iki metod kullanılır.
textview.set_justification(justification)
justification = textview.get_justification()

Burada bahsi geçen justification 3 değer alabilir, bunlar :
  • gtk.JUSTIFY_LEFT
  • gtk.JUSTIFY_RIGHT
  • gtk.JUSTIFY_CENTER

Not : Eğer metnin otomatik satır bölme modu WRAP_NONE ise hizalama sadece JUSTIFY_LEFT olur.
TextView içindeki taglar öntanımlı hizalama ayarlarının üstüne yazarlar.

TextView ile ilgili diğer özellikler aşağıdaki gibi alınabilir ve ayarlanabilir.

textview.set_left_margin(left_margin)
left_margin = textview.get_left_margin()

textview.set_right_margin(right_margin)
right_margin = textview.get_right_margin()

textview.set_indent(indent)
indent = textview.get_indent()

textview.set_pixels_above_lines(pixels_above_line)
pixels_above_line = textview.get_pixels_above_lines()

textview.set_pixels_below_lines(pixels_below_line)
pixels_below_line = textview.get_pixels_below_lines()

textview.set_pixels_inside_wrap(pixels_inside_wrap)
pixels_inside_wrap = textview.get_pixels_inside_wrap()

textview.set_tabs(tabs)
tabs = textview.get_tabs()


Burada bahsi geçen left_margin, right_margin, indent, pixels_above_lines, pixels_below_lines ve pixels_inside_wrap parametreleri piksel cinsinden belirtilmişlerdir.

Örnek olarak pygtk-demo'içerisindeki TextView başlıklarına bakabilir , buradaki kodu inceleyebilirsiniz.

Kaynak : http://www.pygtk.org/pygtk2tutorial/sec-TextViews.html

Hiç yorum yok:

Yorum Gönder