Bu öğretici, PyQt5’in QPushButton
bileşeni ve diğer temel öğelerle etkileşimine kapsamlı bir giriş sağlar. Temel bir düğme uygulaması üzerine kurarak, etkileşimli ve görsel olarak çekici uygulamalar oluşturmak için stil tekniklerini ve olay işlemeyi inceleyeceğiz.
İçindekiler
- Bir Basmalı Düğme Oluşturma
- Basmalı Düğmenin Stilini Belirleme
- Düğme Tıklamalarını İşleme: Sinyal ve Slotlar
- QLabel ile Entegrasyon: Bilgi Gösterme
- QStyleSheet ile Gelişmiş Stil Uygulama
1. Bir Basmalı Düğme Oluşturma
QPushButton
, PyQt5 GUI geliştirmede temel bir yapı taşıdır. Basit bir düğme oluşturalım:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("My PyQt5 Uygulamam")
button = QPushButton("Tıkla!")
layout = QVBoxLayout()
layout.addWidget(button)
window.setLayout(layout)
window.show()
sys.exit(app.exec_())
Bu kod, “Tıkla!” etiketli bir düğme içeren bir pencere oluşturur. Düğme şu anda etkin değil; bir sonraki bölümde işlev ekleyeceğiz.
2. Basmalı Düğmenin Stilini Belirleme
PyQt5, düğmelerin görünümünü özelleştirmenin çeşitli yollarını sunar. Metni, yazı tipini ve hatta simgeler ekleyebiliriz:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout
from PyQt5.QtGui import QFont, QIcon
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("Stili Belirlenmiş Düğme")
button = QPushButton("Tıkla!")
button.setFont(QFont('Arial', 12)) #yazı tipini ayarla
button.setIcon(QIcon('path/to/your/icon.png')) #simge ekle (kendi simge yolunuzla değiştirin)
layout = QVBoxLayout()
layout.addWidget(button)
window.setLayout(layout)
window.show()
sys.exit(app.exec_())
'path/to/your/icon.png'
öğesini simge dosyanızın gerçek yoluyla değiştirmeyi unutmayın.
3. Düğme Tıklamalarını İşleme: Sinyal ve Slotlar
Düğmeyi etkileşimli hale getirmek için sinyal ve slotlar kullanıyoruz. Bir olay meydana geldiğinde (düğme tıklaması gibi) bir sinyal yayılır ve bir slot, sinyale yanıt veren bir işlevdir.
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout, QLabel
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("Etkileşimli Düğme")
button = QPushButton("Tıkla!")
label = QLabel("Düğmeye henüz tıklanmadı.")
layout = QVBoxLayout()
layout.addWidget(button)
layout.addWidget(label)
window.setLayout(layout)
def on_button_click():
label.setText("Düğmeye tıklandı!")
button.clicked.connect(on_button_click) #sinyalı slota bağla
window.show()
sys.exit(app.exec_())
Bu örnek, düğmenin clicked
sinyalini, düğmeye basıldığını gösteren bir etiketi güncelleyen on_button_click
fonksiyonuna bağlar.
4. QLabel ile Entegrasyon: Bilgi Gösterme
QLabel
bileşenleri, düğmelerin yanında metin veya resim görüntülemek için idealdir. Bunları nasıl birleştireceğinize dair bir örnek:
# (3. bölümden kod burada bilgi göstermek için bir QLabel eklemek üzere genişletilebilir)
(3. bölümden gelen kod, bilgi görüntülemek için bir QLabel eklemek üzere kolayca genişletilebilir. Kısaca, burada açıkça gösterilmemiştir, ancak konsept önceki örnekte gösterilmiştir.)
5. QStyleSheet ile Gelişmiş Stil Uygulama
Daha karmaşık stiller için QStyleSheet kullanın. Bu, bileşenlerinize CSS benzeri stiller uygulamanıza olanak tanır.
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout
from PyQt5.QtCore import Qt
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QStyleSheet Örneği")
button = QPushButton("Tıkla!")
button.setStyleSheet("QPushButton { background-color: lightblue; color: darkblue; border-radius: 10px; padding: 10px; }")
layout = QVBoxLayout()
layout.addWidget(button)
window.setLayout(layout)
window.show()
sys.exit(app.exec_())
Bu, düğmenin açık mavi arka plan, koyu mavi metin, yuvarlak köşeler ve dolgu ile stilini ayarlamak için QStyleSheet kullanır.