PyQt5 Tutorials

PyQt5 İtmeli Düğmeleri: Kapsamlı Bir Kılavuz

Spread the love

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

  1. Bir Basmalı Düğme Oluşturma
  2. Basmalı Düğmenin Stilini Belirleme
  3. Düğme Tıklamalarını İşleme: Sinyal ve Slotlar
  4. QLabel ile Entegrasyon: Bilgi Gösterme
  5. 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.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir