PyGTK - Konteynerler
PyGTK kitaplığı, pencere içindeki pencere öğelerinin yerleşimini kontrol etmek için farklı konteyner sınıfları sağlar. En kolay yol, birfixed container class ve piksel cinsinden ölçülen mutlak koordinatlarını belirterek içine bir widget yerleştirin.
Şimdi şu adımları izleyelim -
Step 1 - Bir nesneyi beyan edin fixed class
fixed = gtk.Fixed()
Step 2 - Bir düğme widget'ı oluşturun ve bunu kullanarak sabit konteynere ekleyin put()x ve y koordinatlarına ihtiyaç duyan yöntem. Burada düğme (100,100) konumuna yerleştirilecektir.
btn = gtk.Button("Hello")
fixed.put(btn, 100,100)
Step 3- Sabit konteynere birden fazla kontrol yerleştirebilirsiniz. Ve bunu en üst düzey pencereye ekleyin veshow_all() yöntem
self.add(fixed)
self.show_all()
Ancak bu Mutlak Düzen, aşağıdaki nedenlerden dolayı uygun değildir -
- Pencere yeniden boyutlandırılsa bile widget'ın konumu değişmez.
- Farklı çözünürlüklere sahip farklı görüntüleme cihazlarında görünüm tek tip olmayabilir.
- Tüm formun yeniden tasarlanması gerekebileceğinden düzende değişiklik yapmak zordur.
Aşağıdaki original window -
Aşağıdaki resized window -
Düğmenin konumu burada değişmez.
PyGTK API, widget'ların konteyner içinde konumlandırılmasının gelişmiş yönetimi için konteyner sınıfları sağlar. Layout yöneticilerinin mutlak konumlandırmaya göre avantajları şunlardır:
- Pencerenin içindeki widget'lar otomatik olarak yeniden boyutlandırılır.
- Farklı çözünürlüklere sahip ekran cihazlarında tek tip görünüm sağlar.
- Yeniden tasarlamaya gerek kalmadan dinamik olarak widget eklemek veya kaldırmak mümkündür.
gtk.Container, aşağıdaki sınıflar için temel sınıf görevi görür -
- gtk.ButtonBox
- gtk.Box
- gtk.Alignment
- gtk.EventBox
- gtk.Table