PyQt5 Tutorials

PyQt5 Kutu Düzeni Ustası: QVBoxLayout ve QHBoxLayout

Spread the love

PyQt5, widget’ları etkili bir şekilde düzenlemek için güçlü layout yöneticileri sağlar. Özellikle QVBoxLayout (dikey) ve QHBoxLayout (yatay) kutu düzenleri, yapılandırılmış kullanıcı arayüzleri oluşturmak için temeldir. Bu öğretici, bu düzenleri, kullanımlarını ve widget hizalamasının nasıl kontrol edileceğini göstererek inceliyor.

İçerik Tablosu:

Dikey Kutu Düzeni (QVBoxLayout)

QVBoxLayout, widget’ları dikey olarak, birinin diğerinin üstüne istifleyerek düzenler. Bu, form, liste veya sütunlu düzenleme gerektiren herhangi bir senaryo oluşturmak için idealdir.


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

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

layout = QVBoxLayout()
layout.addWidget(QLabel("Bu bir etiket."))
layout.addWidget(QPushButton("Tıkla!"))
layout.addWidget(QLabel("Başka bir etiket."))

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

Bu kod, bir etiket, bir düğme ve başka bir etiket içeren dikey bir düzenlemeye sahip bir pencere oluşturur.

Yatay Kutu Düzeni (QHBoxLayout)

QHBoxLayout, widget’ları yatay olarak, yan yana yerleştirerek düzenler. Bunu araç çubukları, ilgili kontrolleri gruplandırmak veya widget’ları bir satırda düzenlemek için kullanın.


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

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

layout = QHBoxLayout()
layout.addWidget(QLabel("Etiket 1"))
layout.addWidget(QPushButton("Düğme 1"))
layout.addWidget(QLabel("Etiket 2"))

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

Bu örnek, önceki örneğe benzer, ancak yatay bir düzenleme için QHBoxLayout kullanır.

Widget Hizalamasını Kontrol Etme

Kutu düzenlerindeki widget’lar varsayılan olarak üst/sol hizalamalıdır. Hizalamayı kontrol etmek için, Qt.AlignHCenter (yatay merkez), Qt.AlignVCenter (dikey merkez) veya bunların kombinasyonları gibi bayraklarla setAlignment() yöntemini kullanın. Bu, widget’ı düzen içinde ayrılan alanına göre ortalar.


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout, QLabel, QPushButton, Qt

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("Widget Hizalama Örneği")

layout = QHBoxLayout()
label = QLabel("Ortalanmış Etiket")
layout.addWidget(label)
layout.setAlignment(label, Qt.AlignHCenter | Qt.AlignVCenter)

button = QPushButton("Düğme")
layout.addWidget(button)

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

Bu örnek, bir etiketi hem yatay hem de dikey olarak düzen içinde ortalar.

Karmaşık Kullanıcı Arayüzleri için Düzenleri İç İçe Geçirme

Daha karmaşık kullanıcı arayüzleri için, düzenleri birbirinin içine yerleştirin. Bu, karmaşık düzenlemeler ve widget yerleştirmesi üzerinde ince ayarlı kontrol sağlar.


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayout, QLabel, QPushButton

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("İç İçe Geçmiş Düzenler Örneği")

mainLayout = QVBoxLayout()

# Üst bölüm için yatay düzen
topLayout = QHBoxLayout()
topLayout.addWidget(QLabel("Sol Üst"))
topLayout.addWidget(QPushButton("Sağ Üst"))
mainLayout.addLayout(topLayout)

# Alt bölüm için dikey düzen
bottomLayout = QVBoxLayout()
bottomLayout.addWidget(QLabel("Alt"))
mainLayout.addLayout(bottomLayout)

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

Bu örnek, iki bölümlü bir kullanıcı arayüzü oluşturmak için dikey bir düzenin içine yatay bir düzenin yerleştirilmesini göstermektedir.

Bu öğretici, PyQt5’te kutu düzenlerini kullanmak için bir temel sağlar. Gelişmiş düzen seçenekleri ve karmaşık ve kullanıcı dostu uygulamalar oluşturmak için özellikler hakkında daha fazla bilgi edinmek için PyQt5 belgelerini inceleyin.

Bir yanıt yazın

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