Python - Kullanıcı Arayüzleri, bölüm 2

İçindekiler
Eğitimin ilk bölümünde görebileceğimiz gibi, bir pencere oluşturmak oldukça basittir, bu ikinci bölümde, temel olarak bıraktığımız şeyin daha derinlerine inerek ve bir şey oluşturmak için kodu genişleterek biraz daha ileri gideceğiz. daha yüksek karmaşıklık derecesi.
Düğme ekle
Pencereden çıktığımızda, içinde daha fazla öğe olmalı ve en temel ama çok önemli olanlardan biri düğmedir, eklemek için ekleyeceğiz. btn = wx.Button (kazan) kodumuzda görelim:
 wx uygulamasını içe aktar = wx.App () kazan = wx.Frame (Yok) btn = wx.Button (kazan) win.Show () app.MainLoop () 

Gördüğümüz gibi, hemen hemen yukarıdakiyle aynı kod, ancak düğmeyi ekleyen talimatı ekliyoruz, görüntüde sonucu görebiliyoruz:

Düğme tüm pencereyi kapladığı için sonuç çok estetik değil, ancak cesaretimiz kırılmamalıdır, bir sonraki bölümde göze daha hoş bir sonuç elde etmek için bunun nasıl kontrol edileceğini göreceğiz.
Etiketler ve pozisyonlar
Önceki bölümde, daha fazla eleman eklemek çok kolay olsa da, grafik düzeyinde ulaşmak istediğimiz şeyle tutarlı olması için bunları dağıtabilmemiz gerektiğini fark ettik, bunun için etiketler, boyutlar ve konumlar belirleyebiliriz. pencere içindeki öğeler için.
Süreci daha iyi analiz edebilmemiz ve anlayabilmemiz için aşağıdaki kodu karşılık gelen sonucu ile göreceğiz.
 import wx app = wx.App () win = wx.Frame (Yok,) loadButton = wx.Button (kazan, etiket = 'Aç') saveButton = wx.Button (kazan, etiket = 'Kaydet') win.Show ( ) app.MainLoop () 

Gördüğümüz gibi, pencerenin başlığına yapıcı için bir argüman olarak, örnekleme yaparken bir değer koyuyoruz, sonra iki düğme oluşturuyoruz ve her birine bir etiket veya etiket ekliyoruz, sonucu göremeyebilir, ancak beklediğimiz gibi ol:

Aslında bir şeyin doğru görünmediğini ve düğmelerden birinin görünmediğini görebiliriz, bunun nedeni konumunu belirtmememizdir, bu nedenle diğer düğmenin altına gizlenmiştir.
Bunu aşağıdaki kodla düzelteceğiz:
 import wx app = wx.App () win = wx.Frame (None ,, size = (410, 335)) win.Show () loadButton = wx.Button (kazan, etiket = 'Aç', konum = (225, 5), boyut = (80, 25)) saveButton = wx.Button (kazan, etiket = 'Kaydet', konum = (315, 5), boyut = (80, 25)) dosya adı = wx.TextCtrl (kazan, konum = (5, 5), boyut = (210, 25)) içerik = wx.TextCtrl (kazan, konum = (5, 35), boyut = (390, 260), stil = wx.TE_MULTILINE | wx.HSCROLL) uygulaması .Ana döngü () 

Bu kod ile butonların konumları ile detayı düzeltmenin yanı sıra faydalanıp bazı text kontrolleri ekliyoruz, aşağıdaki resimde her şeyin nasıl görüneceğini görelim.

İşler zaten daha iyi durumda, ancak şimdi kendimize bu pencereyi ne yapacağız diye soruyoruz, çünkü bir sonraki bölümde bazı işlevleri tanımlayacağız.
Olay işleme
Programlarımızı oluşturmak için bu tür bir yaklaşımı kullanarak, yaptığımız şeyin vizyonu da biraz değişir, bu durumda ve programın yürüttüğü eylemlere event diyeceğiz, bu olaylar bir butona tıklamak gibi kullanıcı eylemleri tarafından tetiklenir, bu yüzden bu olayları içerecek şekilde kodu biraz değiştirdik:
loadButton.Bind (wx.EVT_BUTTON, yük)

Bu satır bizi load fonksiyonu ile eleman, bu durumda bir düğme arasında bir birlik yapar, bu yüzden önce bir fonksiyon tanımlamamız ve sonra onu bir elemana bağlı bir olaya atamamız gerektiğini zaten biliyoruz.
Son kodu görelim:
 wx def load (olay): file = open (filename.GetValue ()) content.SetValue (file.read ()) file.close () def save (olay): dosya = open (filename.GetValue (), ' w ') file.write (contents.GetValue ()) file.close () app = wx.App () win = wx.Frame (None ,, size = (410, 335)) bkg = wx.Panel (kazan) loadButton = wx.Button (bkg, label = 'Aç') loadButton.Bind (wx.EVT_BUTTON, yük) saveButton = wx.Button (bkg, label = 'Save') saveButton.Bind (wx.EVT_BUTTON, kaydet) dosya adı = wx.TextCtrl (bkg) içerik = wx.TextCtrl (bkg, stil = wx.TE_MULTILINE | wx.HSCROLL) hbox = wx.BoxSizer () hbox.Add (dosya adı, orantı = 1, bayrak = wx.EXPAND) hbox.Add (loadButton, orantı = 0, bayrak = wx.LEFT, kenarlık = 5) hbox.Add (saveButton, orantı = 0, bayrak = wx.LEFT, border = 5) vbox = wx.BoxSizer (wx.VERTICAL) vbox.Add (hbox, orantı = 0, bayrak = wx.EXPAND | wx.ALL, border = 5) vbox.Add (içerik, orantı = 1, bayrak = wx.EXPAND | wx.LEFT | wx.BOTTOM | wx.SAĞ, kenarlık) = 5) bkg.SetSizer (vbox) win.Show () app.MainLoop () 

Bu programın yaptığı şey, metin dosyalarını oldukça basit bir şekilde düzenlemek, ancak birçok işlevi ve uygulamayı kullanmamızı sağladı.
Bununla, nasıl kullanılacağını bilerek öğreticiyi bitiriyoruz. araç takımı kullanıcı arayüzünde, belirli bir işletim sistemine özel olanlar da dahil olmak üzere mevcut farklı araç takımlarını araştırmanızı ve her aracın zaman zaman bizim için yararlı olacağını hatırlamanızı öneririz.Bu Eğitimi beğendiniz ve yardım ettiniz mi?Yazara olumlu puan vermek için bu düğmeye basarak yazarı ödüllendirebilirsiniz.
wave wave wave wave wave