Python'da grafik kullanıcı arayüzlerini kullanmaya başlama

İçindekiler

Bu derste koyacağız Python'da GUI uygulamalarının uygulanmasına ilişkin örnekler, grafiksel bir arayüzle çalışmak için birçok modül var, burada seçtik Tkinter, Python ile önceden yüklenmiş olarak geldiğinden ve bu şekilde nasıl çalıştığımızı görmemize yardımcı olacağından, sonunda küçük bir örnek göreceğiz. PyQt.

olup olmadığını kontrol edebiliriz Tkinter modül aşağıdakiler kullanılarak doğru şekilde kurulur:

 piton -m tkinter
NotPython 2'de ilk büyük harfle yazılan t: Tkinter olacaktır, çünkü Python 3'te yeniden adlandırılmıştır.

Düzgün kurulmuşsa, aşağıdaki gibi bir pencerenin görüntülendiğini göreceğiz:

Bir hata görmezsek, bu modülü bulamadığını belirtir:

Modülü Debian dağıtımlarında Python 3'e kurmak için:

 sudo apt-get install python3-tk
Diğer sürümler için aşağıdaki bağlantıya bakın. Eğitim, Python'da GUI ile çalışma hakkında ilk izlenimi vermeye odaklanmıştır, eğer bu konuda yeniyseniz, o zaman size yardımcı olacaktır, eğer ileri düzey konular arıyorsanız bu doğru eğitim değildir.

NotBurada Python 3 ile çalışacağız, kütüphaneyi aşağıdaki gibi içe aktarıyoruz:

 tkinter'ı içe aktar
Ancak Python 2'de onu aşağıdaki gibi içe aktarmalısınız, daha önce yeniden adlandırıldığından bahsetmiştik:
 Tkinter'ı içe aktar

Öğretici örneğine örnek olarak başlayacağız, en kolayından başlayıp sonunda karmaşık hale getireceğiz.

örnek 1
Bunun için basit bir pencere oluşturacağız ve aşağıdaki kodu yazacağız:

 tkinter penceresini içe aktar = tkinter.Tk () penceresi = tkinter.mainloop ()
İlk satır ile gerekli modülü içe aktarıyoruz, sonraki satır ana pencereyi oluşturuyor ve son komutu kaldırırsak kodu çalıştırdığımızda pencere görünmeyecek. Örneğin çıktısı:

Bu örnek çok uzun oldu, 3 satır… Bir sonrakine geçelim.

Örnek 2
Bir öncekinden çok daha uzun olmayan bu örnekte örnek 1'de yaptığımız gibi pencereyi oluşturacağız ama biraz yapılandıracağız, rengini, boyutunu ve başlığını değiştireceğiz.

 tkinter'ı tk olarak içe aktar pencere = tk.Tk () window.config (bg = "mavi") window.geometry ("400x300") window.title ("Örnek2") window.mainloop ()
İlk satır hala tkinter modülünü içe aktarıyor, ancak kodda daha kısa bir kelime kullanabilmemiz için ona bir takma ad veriyoruz. Pencereyi önceki örnekteki gibi oluşturacağız. Sonraki 3 satır renk, boyut ve başlığı sırayla yapılandıracaktır. Zaten bildiğimiz son satır. Örneğin çıktısı aşağıdaki gibidir:

Buraya kadar her şey çok kolay oldu, daha fazla örnekle devam edelim.

Örnek 3
Şimdi ana pencerenin içinde bizi çok da zorlamayacak bir buton oluşturacağız, kodu görelim:

 tkinter'ı tk olarak içe aktar penceresi = tk.Tk () window.geometry ("200x150") düğmesi = tk.Button (pencere, metin = "Test") button.grid (satır = 1, sütun = 1) window.mainloop ()
Açıklama gerektiren tek satırlar:
 button = tk.Button (pencere, metin = "Test") button.grid (satır = 1, sütun = 1)
İlki Testing adında bir düğme oluşturur (buton) ve onu atadık pencere, ana penceremizin değişkeni. İkincisi, düğmeyi 1. satıra ve sütuna yerleştirir. Yürütme bize aşağıdakileri gösterecektir:

Düğme basitçe görüntüleniyor, çalışmıyor, olaylara hizmet etmediği için aşağıdaki örnekte yapacağız.

Örnek 4
Şimdi ana pencere olmayacak ikinci bir pencere açmak için bir etkinliğe katılacağız, kodu görelim:

 tkinter'ı tk def olarak içe aktar open (): window2 = tk.Üst düzey (pencere) penceresi = tk.Tk () window.geometry ("200x150") düğmesi = tk.Button (pencere, metin = "Aç", komut = açık) button.grid (satır = 1, sütun = 1) window.mainloop () 
Yeni satırları göreceğiz, open işlevi ana pencerenin bir “alt” penceresini oluşturacak olan aşağıdaki talimata sahip olacaktır.
 pencere2 = tk.Üst düzey (pencere)
Ve düğmede küçük bir değişiklik var, dikkat edin emretmek, bir işlevi yürütmektir, bu durumda işlevi çağırmaktır açık:
 buton = tk.Button (pencere, metin = "Aç", komut = aç)
Bir sınıfla bir örneğe gidelim.

Örnek 5
Bu tkinter'ın son örneği ve en uzunu olacak, farklı bir şey yapmak için bir sınıf oluşturacağız. Yapacağımız şey, yeniden boyutlandırılamayan küçük bir pencere, bir metin etiketi ve bir düğme olacak, düğmeye her bastığımızda sayı artacak. Gelelim koda:

 tkinter'ı tk sınıfı olarak içe aktar Uygulama (): counter = 1 def __init __ (self): self.window = tk.Tk () self.window.geometry ("300x60") self.window.title ("Örnek 5") self pencere.yeniden boyutlandırılabilir (genişlik = Yanlış, yükseklik = Yanlış) self.createButton () self.createLabel () self.window.mainloop () def createButton (self): self.button = tk.Button (self.window, metin = " Arttır ", komut = self.increase) self.button.pack () def createLabel (self): self.tag = tk.Label (self.window, text =" 0 ", fg =" blue ") self.tag .pack (pady = 10) tanım artışı (self): self.tag ["metin"] = self.counter self.counter + = 1 uygulama = Uygulama () 
işlevde __içinde__ fonksiyonları çağırmanın yanı sıra pencereyi oluşturup yapılandıracağız. oluşturDüğmesi Y oluşturmakEtiket bu unsurlara inanmamız için. Önceki örnekleri gördüysek, bu, karmaşıklık veya şüphe yaratmamalıdır. Programı başlatırken, 0 numaralı pencereye sahibiz:

Düğmeye tıklarsak sayı artar, örneğin 25 kez tıkladıktan sonra aşağıdakileri elde ederiz:

Bu derste tkinter modülünün temellerini gördük, daha birçok şey yaratabileceksiniz, burada derinleşmekle ilgileniyorsanız, tkinter hakkında konuştukları resmi Python sayfasına bağlantınız var.

Python'da, başlangıçta söylendiği gibi grafik arayüzleri programlayabileceğiniz başka kütüphaneleriniz var, bunlardan bazıları:

  • PyGTK
  • wxPython
  • PyQT

Tkinter'ı farklı bir modülle biraz karşılaştırabilmeniz için bir PyQt örneği vereceğiz.

PyQT ile Örnek
Bu örneği başlatmak için kütüphaneyi kurman gerekecek, yukarıda verdiğimiz linki ziyaret edebilirsiniz. 275x200 boyutunda ve Örnek PyQt4 başlıklı bir pencere oluşturacağız. Ayrıca 300x300 konumunda görünecektir.

 sys'i PyQt4'ten içe aktar QtGui uygulamasını içe aktar = QtGui.QApplication (sys.argv) penceresi = QtGui.QWidget () window.resize (275, 200) window.move (300, 300) window.setWindowTitle ('PyQt4 Örneği') penceresi. göster () sys.exit (application.exec_ ()) 
Kodu çalıştırırsak aşağıdaki çıktıyı elde ederiz:

Karmaşık bir şey yok, öğretici boyunca nasıl gözlemlendi, örnekler vermeye devam edebiliriz, çünkü değinilecek çok şey var, ancak bir girişle birlikte, listeler gibi diğer öğeleri ekleyerek kendi örneklerinizi oluşturma alıştırması yapmaya hazırlar. metin kutuları nereye yazılacak, vb.

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