Merhabalar, bu yazımda QtDesigner kullanarak oluşturulan form tasarımlarının Python’a dönüştürülmesi ve Visual Studio 2019 ile kodlamayı anlatacağım.
Visual Studio kullanacağımız için de gerekli modül ve paketleri yine VS üzerinden ekleyip kuracağız, böylece daha kolay ve hızlı olarak kurulumlarını yapmış olacağız.
Öncelikle Qt nedir? Multi platform uygulamalar geliştirmeniz için C kullanan güzel bir platformdur Qt, fakat biz burada Qt Designeri kullanacağız Qt Designer de form tasarımı yapabileceğimiz yani UI hazırlayacağız Visual Studio Desktop C# Form Application’da olduğu gibi form üzerine objeleri kolayca ekletip tasarımı hızlıca yapabildiğimiz bir uygulama.
Normal şartlarda Python ile arayüzü tasarlamak saatlerimizi alır, hatta istediğimiz tasarımı yakalamamız mümkün olmayacaktır fakat Qt Designer ve Python için oluşturulan Pyqt modülü bizi büyük bir zahmetten kurtarıyor.
Başlıyoruz;
Öncelikle Visual Studio’da Python 3 kurulu olmalı, (Ben son sürümü tercih ediyorum) eğer kurulu değil ise Visual Studio Installer kullanarak kurabiliriz.
Python Paketlerinin Yüklenmesi;
Kurulum sonrasında yeni bir Python application projesi oluşturarak işe başlayabiliriz, öncelikle gerekli python paketlerini yükleyeceğiz. Bunun için Python Environments alanından Python sürümümüzü seçiyor ve Packages listesindeki ilgili alana PyQt5-sip yazarak Install PyQt5-sip ile devam ediyoruz.
Bu paketin kurulum aşamasında hata almanız durumunda pip versiyonunuzu yükseltmeniz gerekmektedir, yine Packages alanında bulunan pip yanındaki update iconu ile hızlıca versiyonu yükseltebilirsiniz.
Versiyonu yükseltim tekrar PyQt5-Sip paketini kuruyoruz ve PyQt5 modülünü kurmak için aynı alana PyQt5 yazıyor ve Install PyQt5 ile devam ediyoruz.
Gerekli paketler öncelikle download edilecek ve ardından otomatik olarak kurulacaktır, bu adımları altta bulunan Output penceresinden izleyebilirsiniz.
Öncelikle gerekli paketleri download ederek kurulum işlemine başlanacaktır.
QT Designer Yükleme;
Şimdi asıl işimizi kolaylaştıracak olan QtDesigner kurulumunun nasıl yapılacağına geliyoruz, bunun için yine Packages alanına PyQtDesigner yazarak Install PyQtDesigner diyor ve kurulum işlemini tamamlıyoruz.
Designer kurulumu sonrasında Visual Studio kurulum dizininde (bende aşağıdaki gibi) Python 3.7 kullandığımız için bu dizin içerisinde Lib\site-packages\PyQt5\Qt\bin altında QtDesigner.exe isminde bir uygulama bulunuyor olacak, bu uygulama ile Python uygulamamız için form tasarımlarını yaparak kullanabiliyor olacağız.
C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\Lib\site-packages\PyQt5\Qt\bin
Bu uygulamayı açıyoruz, açılan uygulamada gerekli window ayarlarını yaparak daha sonra Visual Studio form applicationdan alışık olduğumuz mantık da form tasarımımızı yapabiliriz, formumuz üzerinde olması gerekenleri tam planlayarak gerekli olan objeleri formumuza ekleyerek formumuzu kaydedeceğiz, daha sonra bu formu python koduna dönüştüreceğimiz için tam olarak formu tasarladığımızdan emin olmamız gerekmektedir, aksi durumda bir değişiklik yapacağımız zaman tekrar formu python’a dönüştürüp kullanmamız gerekiyor ve buda zaman kaybı demek.
Not: Eğer QT Designer’ı bulamazsanız veya bulduğunuz yerde bir hata vererek açılmaz ise aşağıda ki linkten indirerek kurun, bu Başlat’a ve masaüstünüze QT Designer kısayolunu ekler buradan çalıştırabilirsiniz.
https://build-system.fman.io/static/public/files/Qt%20Designer%20Setup.exe
Ben aşağıdaki gibi bir ekran tasarladım burada labellar, Barkod için bir textbox, uyarı mesajlarının görüneceğiz bir textblock butonlar, bir combobox ve sağda bir data grid mevcut.
Henüz tasarım aşamasındayken QtDesigner ile bazı kod yazarak yapılabilir işleri kod yazmadan yapabiliyoruz buna QtDesigner’da Signal/Slot ismi veriliyor, detaylı bilgilere daha geniş bir makalede el atacağım ama örnek olarak ekranda bir butona basıldığı anda Barkod Textbox ına otomatik olarak focus ol diyebiliyoruz, veya Combobox dan X seçilirse şu Label’da bunu yaz gibi basit işleri kod yazmadan çözme olanağımız var bu tarz işleriniz olacaksa öncesinde QtDesigner ile bunlarıda ekleyip Python koduna bu şekilde dönüştürürseniz ekstra kod yazmaktan kurtulabilirsiniz.
Python koduna çevirme;
Tasarımımızı yaparak kaydettiğimizde bize .ui uzantılı bir
dosya oluşturuyor, bu dosyayı .py uzantılı bir python koduna çevirebilmek için
öncellikle bir cmd penceresi açıyoruz ve python37 dizinimizin altındaki Script
klasörüne gidiyoruz bende yol aşağıdaki gibi;
C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\Scripts
Bu dizinde pyuic5.exe isimli uygulama bize bu dönüşümü sağlayacak olan uygulamadır aşağıdaki şekilde komutları yazıyoruz; (Bu uygulama Visual Studio’da eklediğimiz paketlerle birlikte geldi, ekstra bir şey kurmuyoruz)
pyuic5 -x c:\sample.ui -o c:\sample.py
Burada sample.ui QtDesigner’dan aldığımız ui dosyasının yolunu gösteriyoruz, ve oluşturacağımız sample.py dosyasını da nereye kaydedeceğimizi belirterek enter diyoruz, bir hata vermez ise convert tamamlanmış demektedir.
Convert tamam ise ilgili dizine gidip baktığımızda .py uzantılı python dosyamızın oluştuğunu görebilirsiniz.
Solda QT UI dosyasının içeriğini sağda ise pythona çevrilmiş içeriği görebilirsiniz, kolayca tasarım yaptığımız bir python form kodumuz var artık.
Bu kodu Visual Studio 2019 da oluşturduğumuz python projemize kopyalayarak kodlamamıza başlayabiliriz.
Bunun üzerine istediğimiz özellikleri, buton fonksiyonlarını vb. vb. ekleyerek programımızı yapabiliriz. Debug vb. tüm işlemleri Visual Studio üzerinden yapabiliyoruz, kopyaladığımız kodu çalıştırarak bakalım formumuz gelecek mi?
Attach diyerek uygulamayı çalıştırabiliriz.
QtDesigner’da tasarladığımız form olduğu gibi ekrana geldi, hiçbir fark veya bozulma yok kullandığımız bütün objelerde sorunsuz görünüyor. Artık bunların altını kodlayarak işlevsel hale getirmek bizim elimizde.
Bir diğer makalemiz de Qt Designer’ın detaylı kullanımı ve özelliklerini ayrıca bu örnek formda ki grid, textbox, butonlar ve diğer objelerin veritabanı haberleşmesi, http istekleri gibi python kodlama örneklerini anlatarak Python ve PyQt ye giriş yapmış olacağım.