PyQt5 çok pencereli , arayüze sahip programlar geliştirmek için kodlanmış bir kütüphanedir.
Şimdi dilerseniz Python PyQt5 Kullanımı yazımıza başlayalım.
Python PyQt5 Kurulumu
Pythonumuza PyQt5 modülünü kurmak için komut satırına “pip install PyQt5” komutunu yazmanız yeterlidir.
Python PyQt5 Kullanmı
PyQt5 Pencere İşlemleri
Pencere Oluşturma
PyQt5 kütüphanesini bilgisayarımıza kurduktan sonra projemize dahil etmemiz lazım bunun için şu komutu yazıyoruz:
from PyQt5 import QtWidgets
şeklinde ihtiyacımız olan kütüphane bileşenini içeri aktardık.
Yanında sys modülünü de import edersek bize kolaylık sağlayacaktır. Onun için şu kodları yazmalıyız:
import sys
koduyla modülümüzü dahil ettik.
Daha sonra QApplication nesnesi oluşturalım. Bu nesne programımızın ana taşı ilerde detaylı olarak açıklayacağız.
app = QtWidgets.QApplication(sys.argv)
kodlarıyla nesnemizi oluşturduk.
Daha sonra penceremizi oluşturalım. İşlemlerimizi bu pencere üzerinde gerçekleştireceğiz.
pencere = QtWidgets.QtWidget()
kodu ile penceremizi oluşturduk. Penceremizi ekrana yansıtmak için “pencere.show()” kodunu yazmalıyız bu sayede pencere ekrana yansıtılır. Ancak pencere yansıtıldığı gibi kapanır Python’da birçok modülde böyledir. Bunun için ise yukarıda tanımladığımız QApplication nesnesini kullanarak bir kod bloğu yazmalıyız.
app.exec_()
kodunu yazarsak penceremiz biz kapat tuşuna basınca kapatılır.
Tebrikler Python’da PyQt5 kullanarak ilk pencerenizi oluşturdunuz.
Ancak farkettiğiniz gibi QtWidgets, QtApplication yazmak biraz zor. Bunun için
“from PyQt5.QtWidgets import *”
kodunu yazarak QtWidgets yazmamız gereken yerlere hiç bir şey yazmadan geçebiliriz.
PyQt5‘de birkaç farklı pencere türü var ancak şu anlık QtWidget bize yeterli.
Pencere Başlığı Ayarlama
PyQt5 kullanarak oluşturduğumuz pencerenin başlığını ayarlamak için şu kod bloğunu yazmamız yeterli:
pencere.setWindowTitle(“Kod Akademisi”)
bu kodla başlığı “Kod Akademisi” olan PyQt5 penceremiz oluşacak.
Pencere Boyutu Ayarlama
Eğer oluşturduğumuz pencerenin boyutunun değişmez olmasını istiyorsak
pencere.setFixedSize(760,480)
koduyla penceremizin boyutunun 760×480 olmasını istedik, boyutu büyültülemez veya küçültülemez.
Eğer sadece genişliği sabit yapmak istiyorsak
pencere.setFixedWidth(600)
koduyla genişliği değişmez bir pencere, eğer yüksekliği sabit bir pencere istiyorsak
pencere.setFixedHeight(600)
koduyla yüksekliği değişmez bir pencere oluştururuz.
Eğer penceremiz açıldığında tam ekran olarak açılmasını istiyorsak
pencere.showMaximized()
kodunu kullanabiliriz.
Eğer penceremizin büyütülmez ama küçültülebilir olmasını istiyorsak.
pencere.setMaximumSize(760,480)
şeklinde yazarsak penceremizin en fazla büyüklüğü 760×480 olabilir, üstüne çıkamaz.
Eğer penceremizin belirli bir konumda açılmasını istiyorsak
pencere.move(200,200)
koduyla penceremiz en yukardan 200 piksel aşağıda, en soldan 200 piksel sağda olacaktır.
Eğer penceremizin arkaplanını değiştirmek istiyorsak
pencere.setStyleSheet(“background-color :black”)
koduyla penceremizin arkaplanını siyah yaptık.
Eğer pencere açılırken istediğimiz bir boyutta açılmasını istiyorsak
pencere.setGeometry(0, 0, 400, 300)
koduyla yapabiliriz.
Pencere Simgesi Ayarlama
Oluşturduğumuz pencerenin bir simgesi olsun istiyorsak öncelikle QIcon sınıfını içe aktarmalıyız.
from PyQt5.QtGui import QIcon
daha sonra şu kodlarla beraber simgemizi ayarlarız:
pencere.setWindowIcon(QIcon(“simge.jpg”))
böylelikle simgemizi ayarladık. Unutmayın eğer fotoğraf aynı dizinde değilse çalışmaz.
PyQt5 QLabel
QLabel ile ekrana yazı yazdırabiliriz. Öncelikle QLabel sınıfını import etmeliyiz.
from PyQt5.QtWidgets import QLabel
koduyla dahil edebiliriz.
Daha sonra ekrana yazı yazdırmak için
QLabel(‘Kod Akademisi’)
koduyla ekrana yazımızı yazdırdık.
Bir uyarı yapmak istiyorum. Bundan sonra nesne tabanlı olarak anlatacağım. Yukardaki yazdırdığımız yazıyı şu şekildede yazdırabilirdik:
from PyQt5.QtWidgets import *
import sys
class Pencere(QWidget):
def __init__(self):
super().__init__()
yazı = QLabel(“Kod Akademisi”, self)
app = QApplication(sys.argv)
pencere = Pencere()
pencere.show()
app.exec_()
gördüğünüz gibi ekrana Kod Akademisi yazdırdık. Fakat burada QLabel’ı “Pencere” sınıfında kullandığımız için “pencere = Pencere()” şeklinde oluşturduğumuz her pencerede Kod Akademisi yazacak. Eğer bunu istemiyorsak QLabel’ı sınıf dışında kullanmalıyız.
Resim Dahil Etme
Eğer bir resmi dahil etmek istiyorsak öncelikle QPixmap sınıfını dahil etmeliyiz.
from PyQt5.QtGui import QPixmap
daha sonra
pencere.setPixmap(QPixmap(“images/image.jpg”))
koduyla QPixmap sınıfını kullanıp resim ekledik.
Metin Hizalama
Ekrana yazdırdığımız metni hizalamak için şu yöntemi uygulayabiliriz:
from PyQt5.QtCore import Qt
bu şekilde Qt sınıfını çağırdık.
Daha sonra hizalama için :
pencere.setAlignment(Qt.AlignCenter)
bu şekilde yazımız ortada gözükür.
Qlabel ile HTML
Qlabel sınıfını kullanarak HTML kodları yazıp yazımızı düzenleyebiliriz.
pencere.setText(“<p style=color:red>Kod Akademisi PyQt5 Modülü Kullanımı</p>”)
bu kodla birlikte yazımız kırmızı renkte gözükecek. Diğer tüm HTML özelliklerini kullanabiliriz.
QPushButton
QPushButton PyQt5 penceresinde buton oluşturmamıza izin veren bir sınıftır. Kullanmak için öncelikle butonumuzu tanımlamalıyız :
self.buton = QtWidgets.QPushButton(self)
butonumuzu oluşturduk. Fakat butonumuzun üstünde herhangi bir yazı bulunmuyor bunun içinde
self.buton.setText(“Kod Akademisi”)
kod bloğuyla butonumuzun üstüne “Kod Akademisi” yazdırdık.
Fakat oluşturduğumuz buton işlevsiz bir buton , örnek olarak tıkladığım arkaplanı siyah , butonun rengini yeşil yapan bir buton yapalım. Bunu yapabilmek için butonumuza şu kod bloğuyla bir işlev tanımlıyoruz:
self.buton.clicked.connect(self.tıkla)
böylelikle butonumuza tıklandığında “tıkla” isimli fonksiyon çağırılıcak. Tıkla fonksiyonumuzu tanımlayalım :
def tıkla(self):
pencere.setStyleSheet(“background-color :black”)
self.buton.setStyleSheet(“background-color: green”)
Butona tıklanırsa pencerenin ve butonun arkaplanı belirlediğimiz renklere göre değişecektir.
QRadioButton
QRadioButton checkbox(onay kutusu)’nun sadece yuvarlak olanıdır. İster işaretler ister işaretlemezsiniz. Aşağıdaki resimde olduğu gibi :
Bunu oluşturmak için öncelikle en başa şu kodu yazmalıyız:
from PyQt5.QtWidgets import QRadioButton
diyerek QRadioButton’u içeri aktarıyoruz.
Daha sonra radibutton oluyşturmak için şu kodu yazıyoruz:
buton = QRadioButton(“OK”, self)
OK yerine yazdığımız her şey kutucuğun yanında gözükür.Kodlarımızın resmi aşağıdaki gibi :
QCheckBox
Normal bir onay kutusu oluşturmak için öncelikle QCheckBox’u import ediyoruz.
from PyQt5.QtWidgets import QCheckBox
Daha sonra checkboxu oluşturmak için
kutu = QCheckBox(“OK”, self)
kodunu yazarız. Yine aynı şekilde OK yerine yazdığımız her şey kutucuğun yanında görünür.
QComboBox
QComboBox açılır menü oluşturmamıza imkan verir , aşağıdaki resimde olduğu gibi.
Bunu oluşturmak için tüm araçlarda olduğu gibi öncelikle sınıfını import ediyoruz.
from PyQt5.QtWidgets import QComboBox
Daha sonra resimdeki gibi açılır menü oluşturmak için şu kodları yazıyoruz:
self.combo = QComboBox(self)
bu kodla boş bir açılır menü oluşturduk. İçerisine seçenek eklemek için
self.combo.addItem(“Python”)
self.combo.addItem(“HTML”)
self.combo.addItem(“C”)
self.combo.addItem(“C++“)
bu şekilde resimdekinin aynısı bir menü oluşturduk.
QSpinBox
QSpinBox 0’dan 100’e kadar bir değer seçmek için oluşturulan bir kutu. Aşağıdaki resimde olduğu gibi:
Oluşturmak için öncelikle ilgili sınıfı import ediyoruz.
from PyQt5.QtWidgets import QSpinBox
Daha sonra kutucuğumuzu oluşturmak için
spinBox = QSpinBox(self)
kodunu yazıyoruz ve bu şekilde kutucuğumuz hazır.
Evet Python – PyQt5 modülü kullanımı yazımızın ilk bölümü bu kadar.