QT Designer Kullanımı ve Mantığı (QT – 2)

Merhaba arkadaşlar,

Bu yazı da yarım bıraktığımız PyQT serisine devam edicez.PyQT kurulumunu ve ilk pencere oluşturma olayını burada anlatmıştım.QT Designer'ı tanıtıcam size ve basit bir proje yapıcaz. Photo

Burada bölmeleri numaralandırarak verdim.Sıradan gidecek olursak;

  1. Penceremize ekleyeceğimiz araçlarımızın olduğu liste.Sürükle bırak yaparak penceremize buradaki araçları koyabiliriz.Her aracın tabi kendine özgü fonksiyon ve değerleri var.Her araç için olmasa da kullanacağımız araçlar için bunları göstermeye çalışıcam.Hepsine de burada ki linklerden ulaşabilirsiniz; http://doc.qt.io/qt-4.8/qtgui-module.html - http://pyqt.sourceforge.net/Docs/PyQt4/classes.html
  2. En çok kullanacağımız kısımdır belki de.Zaten bütün olay da burada dönüyor, Signal/Slot editörü.Üzerinde ki başlıklardan da anlayabileceğiniz gibi bir Sender'ımız ve bir Receiver'ımız var.Signal ve Slot bölümü ise, Signal son kullanıcının yapacağı şeyi Slot ise kullanıcı bunu yaptıktan sonra bizim arka planda çalıştıracağımız fonksiyonları ifade ediyor.Üzerinde sıkça durucaz zaten kısa kesip atlıyorum.
  3. Burası Toolbox'tan çekip penceremize koyduğumuz araçların özelliklerinin bulunduğu alan.Buraları yer yer kendi yazdığımız programın içinden yer yer de burdan değiştiricez.Tabi değişiklikler için de QT'nin kendi fonksiyonları var onlardan yararlanıcaz.Bu fonksiyonlara az önce verdiğim linklerden ulaşabilirsiniz; http://doc.qt.io/qt-4.8/qtgui-module.html - http://pyqt.sourceforge.net/Docs/PyQt4/classes.html
  4. Pekte sallamıyorum şahsen burayı (: Burası da penceremize eklediğimiz araçların listesi diyebilirim kısaca.Bazı widgetlar eklediğimiz zaman bir ağaçlandırma şeklinde burada görebilirsiniz.
 

Şimdi basit bir program yaparak(şimdilik Python tarafına dokunmadan) QT Designer'ı nasıl kullanacağımızı göstereyim.

Öncelikle basit bir pushButton ekleyelim.Eklemek için toolbox'tan tutup sürükleyerek penceremize dahil edebiliriz.Bu butona pencereyi kapatma özelliği vermek için Signal/Slot Editörünü kullanıyoruz.Şu şekilde; Photo

Burada, "eğer pushButton aracı üzerinde clicked() fonksiyonu çalışırsa MainWindow üzerinde close() fonksiyonunu çalıştır" demiş olduk.Yani pushButton'a basıldığı anda penceremizi kendisini kapatacak.Bu şekilde farklı fonksiyonlar çalıştıran 3-4 buton daha ekleyebilirsiniz. Photo

Burada ki pushButton'lardan ilki pencereyi kapatmak için, 2. pencereyi tam ekran yapmak için, 3.tam ekran olan pencereyi normale geri döndürmek için, 4. ise simge boyutuna küçültmek için kullanılacak.Zaten Slot bölümünde ki fonksiyonların isimlerinden de bunları anlayabilirsiniz.Burada ki fonksiyonlara hiç müdahale etmedim, MainWindow içinde bulunan hazır fonksiyonlardır bunlar.Zaten orada ki listeyi açınca göreceksiniz bunu.Biraz kurcalamanızda fayda var :)

Burada qt1.py dosyasında herhangi bir değişiklik yapmadan sadece .ui dosyası ile böyle basit bir pencere oluşturduk ve birkaç işlevsellik kazandırdık buna.

Son halinin videosu; https://youtu.be/9DkzJltwjlc Bu arada .ui dosyasının son hali için; https://github.com/ahmetkotan/pySeries/blob/master/qt2.ui

Kolay gelsin..


Tags: gui, pyqt, pyseries, python, python gui, qt designer