PyQt5 QLabel’ı Özümsemek: Kapsamlı Bir Kılavuz
QLabel bileşeni, PyQt5 GUI geliştirmenin temel taşlarından biridir ve metin ve resim görüntülemek için basit ama çok yönlü bir yol sunar. Bu öğretici, PyQt5 becerilerinizi geliştirmek için pratik örnekler ve en iyi uygulamalar sağlayarak işlevselliklerine dalmaktadır.
İçindekiler Tablosu
- QLabel Bileşenleri Oluşturma ve Görüntüleme
- Metin Stili: Yazı Tipleri, Renkler ve HTML
- Kesin Metin Hizalama
- QLabel ile Resim Görüntüleme
- Kelime Sarma ve Metin Boyutu Ayarlama
- Gelişmiş Teknikler: Sinyaller ve Yuvalar
1. QLabel Bileşenleri Oluşturma ve Görüntüleme
Metin görüntülemek için temel bir QLabel oluşturarak başlayalım. Bu, QLabel sınıfının örneğini oluşturmayı ve üst bileşenini ayarlamayı içerir.
import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
app = QApplication(sys.argv)
window = QWidget()
label = QLabel("Merhaba, PyQt5!", window)
label.show()
window.show()
sys.exit(app.exec_())
Bu kod parçacığı, “Merhaba, PyQt5!” metninin görüntülendiği basit bir pencere oluşturur. QLabel
, QWidget
‘in bir alt bileşenidir ve pencere içinde doğru görüntülenmesini sağlar.
2. Metin Stili: Yazı Tipleri, Renkler ve HTML
Basit metin görüntülemenin ötesinde, QLabel’ın görünümünü önemli ölçüde özelleştirebilirsiniz. Yazı tipi stilini, renk değişikliklerini ve zengin metin biçimlendirmesi için HTML kullanımını inceleyelim.
import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
from PyQt5.QtGui import QFont, QColor
app = QApplication(sys.argv)
window = QWidget()
label = QLabel("Merhaba, PyQt5!", window) # HTML kullanarak kalın metin
label.setFont(QFont('Arial', 14))
label.setStyleSheet("color: rgb(0, 128, 0);") # Yeşil metin rengi
label.show()
window.show()
sys.exit(app.exec_())
Bu örnek, stil sayfaları kullanarak belirli bir yazı tipini (Arial, boyutu 14) ve yeşil bir rengi ayarlamayı göstermektedir. Etiketin metni içindeki kalın metin için HTML etiketlerinin () kullanımına dikkat edin.
3. Kesin Metin Hizalama
setAlignment()
yöntemini ve Qt’nin hizalama bayraklarını kullanarak QLabel içindeki metnin konumunu kontrol edin.
import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
from PyQt5.QtCore import Qt
app = QApplication(sys.argv)
window = QWidget()
label = QLabel("Ortalanmış Metin", window)
label.setAlignment(Qt.AlignCenter) # Orta hizalama
label.show()
window.show()
sys.exit(app.exec_())
Bu, metni ortalar. İnce ayarlı kontrol için Qt.AlignRight
, Qt.AlignTop
, Qt.AlignBottom
ve bunların kombinasyonları gibi diğer bayrakları inceleyin.
4. QLabel ile Resim Görüntüleme
QLabel sadece metin için değil, aynı zamanda resim görüntülemek için de kullanılabilir. QPixmap
nesnesi ile setPixmap()
yöntemini kullanın.
import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
from PyQt5.QtGui import QPixmap
from PyQt5.QtCore import Qt
app = QApplication(sys.argv)
window = QWidget()
pixmap = QPixmap('path/to/your/image.png') # Resim yolunuzu buraya yazın
label = QLabel(window)
label.setPixmap(pixmap)
label.setAlignment(Qt.AlignCenter)
label.show()
window.show()
sys.exit(app.exec_())
'path/to/your/image.png'
öğesini resim dosyanızın gerçek yoluyla değiştirmeyi unutmayın.
5. Kelime Sarma ve Metin Boyutu Ayarlama
Uzun metin dizileri için, metnin etiketin sınırlarını aşmasını önlemek üzere kelime sarmasını etkinleştirin. Metni barındırmak için etiketin boyutlandırma ilkesini de ayarlayabilirsiniz.
import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
from PyQt5.QtCore import Qt
app = QApplication(sys.argv)
window = QWidget()
label = QLabel("Kelime sarması gereken uzun bir metin dizisi.", window)
label.setWordWrap(True) # Kelime sarmasını etkinleştir
label.adjustSize() # Metne uyacak şekilde etiket boyutunu ayarla
label.show()
window.show()
sys.exit(app.exec_())
setWordWrap(True)
kelime sarmasını etkinleştirir ve adjustSize()
, etiketin sarılmış metne uyacak şekilde otomatik olarak boyut değiştirmesini sağlar.
6. Gelişmiş Teknikler: Sinyaller ve Yuvalar
QLabel, uygulamanızın diğer bölümleriyle etkileşim sağlayan sinyaller gönderebilir. Örneğin, etiket tıklandığında işlemler gerçekleştirmek için bir sinyali bir yuvaya bağlayabilirsiniz.
(fare tıklama olayını kullanan örnek kısaltma için atlanmıştır, ancak PyQt5 dokümantasyonunda kolayca bulunabilir)