Merhabalar başlangıç seviyede PyQt5 kullanımını basit bir program üzerinde anlatacağım.



Kod:
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QFont, QPixmap
from PyQt5.QtCore import Qt


class Pencere(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('Pencere Başlığı')
self.setGeometry(40, 40, 300, 300)
self.ui()

def ui(self):
self.yaziAlani = QLabel('Yazi Alani', self)
self.yaziAlani.move(110, 30)
self.yaziAlani.setFont(QFont('Verdana', 13))
################################################
self.kaydetButton = QPushButton('Kaydet', self)
self.kaydetButton.move(110, 150)
self.kaydetButton.clicked.connect(self.kaydetfunc)
################################################
self.cikisButton = QPushButton('Çıkış', self)
self.cikisButton.move(190, 150)
self.cikisButton.clicked.connect(self.cikisfunc)
################################################
self.nickAlani = QLineEdit(self)
self.nickAlani.move(110, 60)
self.nickAlani.setPlaceholderText('Lütfen nickinizi giriniz')
################################################
self.sifreAlani = QLineEdit(self)
self.sifreAlani.move(110, 90)
self.sifreAlani.setPlaceholderText('Lütfen şifrenizi giriniz')
self.sifreAlani.setEchoMode(QLineEdit.Password)
#################################################
self.checkBoxErkek = QCheckBox('Erkek', self)
self.checkBoxErkek.move(110, 120)
#################################################
self.checkBoxKadin = QCheckBox('Kadin', self)
self.checkBoxKadin.move(180, 120)
#################################################
self.combo = QComboBox(self)
self.combo.move(230, 120)
self.combo.addItems(['Python', 'Java', 'C++'])
##################################################
self.resim = QLabel(self)
self.resim.setPixmap(QPixmap('dede2.png').scaled(5 0, 50, Qt.KeepAspectRatio, Qt.SmoothTransformation))


self.show()

def kaydetfunc(self):
nick = self.nickAlani.text()
sifre = self.sifreAlani.text()
################################################
if self.checkBoxErkek:
cinsiyet = 'Erkek'
elif self.checkBoxKadin:
cinsiyet = 'Kadın'
else:
cinsiyet = ''
################################################
ComboText = str(self.combo.currentText())
################################################
print('Nick : ' + nick + '\nŞifre : ' + sifre + '\nCinsiyet : ' + cinsiyet + '\nProgramlama Dili : ' + ComboText)

def cikisfunc(self):
mesajKutusu = QMessageBox.question(self, 'Mesaj başlığı', 'Mesaj yazısı', QMessageBox.Yes | QMessageBox.No)
if mesajKutusu == QMessageBox.Yes:
print('Yes e basıldı')
else:
print('No ya basıldı')


app = QApplication(sys.argv)
pencere = Pencere()
sys.exit(app.exec_())


Öncelikle kullanacağımız kütüphanelerimizi import ettik
Kod:
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QFont, QPixmap
from PyQt5.QtCore import Qt


QWidget'i miras aldık
Kod:
class Pencere(QWidget):


setWindowTitle kodu ile Penceremizi isimlendirdik.
Kod:
self.setWindowTitle('Pencere Başlığı')


setGeometry(40, 40, 300, 300) kodu ile penceremizin başlangıç noktasını(40, 40) ve boyutunu (300, 300) belirledik.
Kod:
self.setGeometry(40, 40, 300, 300)


QLabel('Yazi Alani', self) kodu ile bir yazı alanı oluşturduk ,ismini Yazi Alani olarak belirledik ve Pencereye eklemesi için self yazdık
Kod:
self.yaziAlani = QLabel('Yazi Alani', self)


move kodu ile pencerede yeniden konumlandırdık.
Kod:
self.yaziAlani.move(110, 30)


setFont kodu ile yazı fontumuzu değiştirdik.
Kod:
self.yaziAlani.setFont(QFont('Verdana', 13))


QPushButton kodu ile buton oluşturduk ve Kaydet olarak adlandırdık.
Kod:
self.kaydetButton = QPushButton('Kaydet', self)


clicked.connect kodu ile butona kaydetfunc fonksiyonunu bağladık. Butona basınca kaydetfunc fonksiyonu çalışacaktır.
Kod:
self.kaydetButton.clicked.connect(self.kaydetfunc)


QLineEdit kodu ile yazı yazılacak alan oluşturduk ve self ile pencereye ekledik.
Kod:
self.nickAlani = QLineEdit(self)


setPlaceholderText kodu ile QLineEdit'in içinde Lütfen nickinizi giriniz yazısının oluşmasını sağladık. İçine bir şey yazıldığında yazı kaybolacaktır.
Kod:
self.nickAlani.setPlaceholderText('Lütfen nickinizi giriniz')


setEchoMode(QLineEdit.Password) kodu ile girilen şifrenin görünmemesini sağladık
Kod:
self.sifreAlani.setEchoMode(QLineEdit.Password)


QCheckBox('Erkek', self) kodu ile Erkek isminde bir checkbox oluşturduk
Kod:
self.checkBoxErkek = QCheckBox('Erkek', self)


QComboBox kodu ile bir combo box oluşturduk.
Kod:
self.combo = QComboBox(self


addItems kodu ile comboBox'a itemler ekledik, addItems liste olarak item almaktadır. String girerseniz hata verecektir.
Kod:
self.combo.addItems(['Python', 'Java', 'C++'])


QLabel kodu ile resim için bir alan oluşturduk.
Kod:
self.resim = QLabel(self)


setPixmap(QPixmap('dede2.png') ile resmi Qlabel'e ekledik.
scaled(50, 50, Qt.KeepAspectRatio, Qt.SmoothTransformation) ile resmi yeniden boyutlandırdık.

Kod:
self.resim.setPixmap(QPixmap('dede2.png').scaled(5 0, 50, Qt.KeepAspectRatio, Qt.SmoothTransformation))


Penceremizin ekranda görünmesini sağlıyor.
Kod:
self.show()


.text() ile QLineEdit içindeki veriyi aldık
Kod:
nick = self.nickAlani.text()
sifre = self.sifreAlani.text()

checkBoxErkek tikli ise True değerini döndürecektir ve cinsiyet'e Erkek değerini atayacaktır.
checkBoxErkek tikli değil ise False değeri dönecektir ve bir program bir sonraki sorguya geçecektir
.

Kod:
if self.checkBoxErkek:
cinsiyet = 'Erkek'
elif self.checkBoxKadin:
cinsiyet = 'Kadın'
else:
cinsiyet = ''
str(self.combo.currentText()) ile Combotext'deki seçili veriyi aldık.
Kod:
ComboText = str(self.combo.currentText())


resize ile yazi alanını yeniden boyutlandırdık çünkü eski alan yetersizdi.
setText ile yaziAlani içindeki yaziyi değiştirdik.

Kod:
self.yaziAlani.resize(180, 20)
self.yaziAlani.setText('İşlem Tamamlandı')
Bir mesaj kutusu oluşturduk.

Kod:
mesajKutusu = QMessageBox.question(self, 'Mesaj başlığı', 'Mesaj yazısı', QMessageBox.Yes | QMessageBox.No)