Bu ara python ile uğraştığımdan bahsetmiştim. Python devasa kütüphane desteğine rağmen, GUI konusunda pek de gelişkin araçlara sahip değil malesef. Dağıtımlarda standart gelen Tkinter ne yazıkki pek güzel değil. Aktif, güncel bir GUI aracı yok malesef. Kod yazarak GUI oluşturmakda eziyet. Epey bir araştrıma yapdıktan sonra bulabilidiğim en rahat çözümden bahsetmek istiyorum. PySide
PySide Qt bazlı bir kütüphane. pyQt de öyle bir çözüm, hatta daha da yaygın. Ama malesef arkasında ticari bir firma var. Anladığım kadarıylada ticari kullanım için lisans satın almanız gerekiyor. Pyside ın hali hazırdaki versiyonu 1.2.4 ve Qt 4.8 bazlı. Lisansı ticari kısıtlama içermiyor LGPL. Ek olarak Qt. 5.x bazlı bir dağıtım -PySide2- üzerinde çalışmalar devam ediyor hatta Qt nin desteğide var bakınız.
https://wiki.qt.io/PySide2Peki nasıl kullanacağız ?
* Öncelikle PySide paketini kurmamız gerekiyor windows için kolay bir kurulum var.
pip install -U PySide
* GUI oluşturmak için QtDesigner ı kullanacağız. Pythonun kurduğunuz dizinin altındaki dizine geçin. Ben Anaconda dağıtımını kullandığım için
'C:\Anaconda2\Lib\site-packages\PySide'bu dizin içinde designer.exe adı altında Qt Designer ' ulaşıyorsunuz. Bu programı çalıştırın
Dialoglu bir seçeneği kullanın.
Bundan sonrasında sol tarafta GUI araçlarında sürükle bırak tarzında GUI dizaynımıızı yapıyoruz.
Biz bir tek giriş nesnesi ve bir liste kutusu ortayada bir düğme koyduk girişi yapılan texti listeye ekleyeceğiz. Dizayı işimiz bitince dizaynımızı
'PySide-Deneme.ui'olark kaydediyoruz. komut satırından
pyside-uic PySide-Deneme.ui -o PySide-Deneme.py
yazarak dizaynımızı python koduna çeviriyoruz.
kodda Ui_Dialog diye bir sınıf tanımlanmış ama yeterli değil, ilaveler yapmamız gerekiyor.
Önce başına
import sys
sonra sonuna
app = QtGui.QApplication(sys.argv)
form = Ui_Dialog()
Dialog = QtGui.QDialog()
form.setupUi(Dialog)
Dialog.show()
sys.exit(app.exec_())
satırlarını ekliyoruz. Artık uygulamamız çalışır fakat sadece dizay ettiğimizi GUI yi görüyoruz. Listeye ekle düğmesinin çalışması için. Önce ekeleme işlemi için Ui_Dialog sınıfına bir fonksiyon ekleyelim.
def Ekle(self):QLineEdit nesnesindeki text i QListWidget nesnesine ekliyoruz basitçe
self.listWidget.addItem(self.lineEdit.text())
Ekle Düğmesine basıldığında bu fonksiyonun çağrılması için ise
self.pushButton.clicked.connect(self.Ekle)satırını Ui_Dialog Sınıfının setupUi fonksiyonun sonuna ekliyoruz.
ve hepsi bu kadar mutlu son....
Kodu incelemek isterseniz
github.com/birolkuyumcu/PySide-Denemeburdan bakabilirsiniz.