PyQt5 Tutorials

PyQt5 QGridLayout’a Kapsamlı Bir Bakış

Spread the love

Bu öğretici, esnek ve düzenli kullanıcı arayüzleri oluşturmak için PyQt5’in güçlü QGridLayout‘ının kullanımı hakkında kapsamlı bir kılavuz sunmaktadır. Temelleri, hücreleri kapsama ve widget gerdirmeyi kontrol etme gibi gelişmiş teknikleri ele alacak ve anlayışınızı pekiştirmek için pratik örnekler sunacağız.

İçerik Tablosu

  1. QGridLayout’ın Temel Kullanımı
  2. Birden Fazla Hücreyi Kaplama
  3. Widget Gerdirmeyi Kontrol Etme
  4. Gelişmiş Teknikler ve Hususlar

1. QGridLayout’ın Temel Kullanımı

QGridLayout, widget’ları satır ve sütunlardan oluşan bir ızgara içinde düzenler. Her widget varsayılan olarak tek bir hücreyi kaplar. Basit bir örnek ile başlayalım:


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QGridLayout

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("PyQt5 Izgara Düzeni Örneği")

layout = QGridLayout()

button1 = QPushButton("Düğme 1")
button2 = QPushButton("Düğme 2")
button3 = QPushButton("Düğme 3")
button4 = QPushButton("Düğme 4")

layout.addWidget(button1, 0, 0)  # Satır 0, Sütun 0
layout.addWidget(button2, 0, 1)  # Satır 0, Sütun 1
layout.addWidget(button3, 1, 0)  # Satır 1, Sütun 0
layout.addWidget(button4, 1, 1)  # Satır 1, Sütun 1

window.setLayout(layout)
window.show()
sys.exit(app.exec_())

Bu, 2×2’lik bir düğme ızgarası oluşturur. addWidget(widget, row, column), belirtilen satıra ve sütuna (sıfır tabanlı) bir widget ekler.

2. Birden Fazla Hücreyi Kaplama

Bir widget’ın birden fazla satırı veya sütunu kaplamasını sağlamak için addWidget(widget, row, column, rowspan, colspan) kullanın. rowspan ve colspan, widget’ın kapladığı satır ve sütun sayısını tanımlar.


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QGridLayout, QLabel

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("PyQt5 Izgara Düzeni Kaplama Örneği")

layout = QGridLayout()

label = QLabel("Bu etiket iki sütunu kaplar")
button1 = QPushButton("Düğme 1")
button2 = QPushButton("Düğme 2")

layout.addWidget(label, 0, 0, 1, 2)  # İki sütunu kaplar
layout.addWidget(button1, 1, 0)
layout.addWidget(button2, 1, 1)

window.setLayout(layout)
window.show()
sys.exit(app.exec_())

Burada, etiket iki sütunu kaplamaktadır.

3. Widget Gerdirmeyi Kontrol Etme

Varsayılan olarak, widget’lar minimum boyutlarına göre boyutlandırılır. Widget’ların mevcut alanı doldurmasını kontrol etmek için setColumnStretch(column, stretch) ve setRowStretch(row, stretch) kullanın. Daha yüksek bir gerdirme faktörü, widget’ın mevcut alanın daha büyük bir bölümünü alacağı anlamına gelir.


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QGridLayout

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("PyQt5 Izgara Düzeni Gerdirme Örneği")

layout = QGridLayout()

button1 = QPushButton("Düğme 1")
button2 = QPushButton("Düğme 2")

layout.addWidget(button1, 0, 0)
layout.addWidget(button2, 0, 1)

layout.setColumnStretch(1, 2)  # Sütun 1, sütun 0'ın iki katı kadar gerilir

window.setLayout(layout)
window.show()
sys.exit(app.exec_())

button2 artık button1‘in yatay alanının iki katını alacaktır.

4. Gelişmiş Teknikler ve Hususlar

Daha karmaşık düzenler için şunları göz önünde bulundurun:

  • addLayout(): İç içe geçmiş yapılar için diğer düzenleri bir QGridLayout içine yerleştirin.
  • Hizalama: Widget’ların hücreler içindeki hizalamasını kontrol etmek için setAlignment() kullanın.
  • Boşluk: Satırlar ve sütunlar arasındaki boşluğu setVerticalSpacing() ve setHorizontalSpacing() kullanarak ayarlayın.
  • Kenar Boşlukları: Tüm ızgara çevresindeki kenar boşluklarını setContentsMargins() kullanarak kontrol edin.

Bu tekniklerde ustalaşmak, gelişmiş ve oldukça uyarlanabilir PyQt5 arayüzleri oluşturmanıza olanak tanıyacaktır.

Bir yanıt yazın

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