--- Öncelikle şu iki bilgi ile başlayalım: Horizontal Box Layout; yatay bir layout, Vertical Box Layout ise; dikey bir layouttur. ---
--- Aşağıdaki projede penceremizi oluşturmuşuz, title vermişiz, pencerenin hangi koordinatlarda olacağını vermişiz, iki adet tamam ve iptal adında butonlar oluşturmuşuz. ---
--- Devamını kodlar ve notlar ile getirelim. ---
import sys
from PyQt5 import QtWidgets
def Pencere():
app = QtWidgets.QApplication(sys.argv)
pencere = QtWidgets.QWidget()
pencere.setWindowTitle("PyQt5 H-V")
pencere.setGeometry(100,100,500,500)
okay = QtWidgets.QPushButton("Tamam")
cancel = QtWidgets.QPushButton("İptal")
h_box = QtWidgets.QHBoxLayout() # Burada horizontal box umuzu oluşturduk. Yatay bir box var elimizde şu anda.
h_box.addStretch() # Burada yatayda solda bir boşluk bıraktık.
h_box.addWidget(okay) # Burada eklenen butonlar addStrechten sonra eklendiği için addstrecth boşluğu solda kalır ve bu 2 buton sağa yanaşır.
h_box.addWidget(cancel)
pencere.setLayout(h_box) # hboxu pencereye bu şekilde ekliyoruz.
pencere.show()
sys.exit(app.exec_())
Pencere()
--- Öncelikle şunu belirteyim, yukarıdaki işlemlerde h_box yerine v_box değişkeni yapıp QHBoxLayout yerine de QVBoxLayout deseydik, bu sefer dikeyde olacağı için butonlar en aşağıda orta kısımda olacaktı. İki durumu da deneyin. Şimdi gelelim v_box oluşturup içine h_boxu koyalım. ---
import sys
from PyQt5 import QtWidgets
def Pencere():
app = QtWidgets.QApplication(sys.argv)
pencere = QtWidgets.QWidget()
pencere.setWindowTitle("PyQt5 H-V")
pencere.setGeometry(100,100,500,500)
okay = QtWidgets.QPushButton("Tamam")
cancel = QtWidgets.QPushButton("İptal")
h_box = QtWidgets.QHBoxLayout()
h_box.addStretch()
h_box.addWidget(okay)
h_box.addWidget(cancel)
v_box = QtWidgets.QVBoxLayout() # Burada ayrı bir Vertical Box oluşturduk.
v_box.addStretch() # Boşluk bıraktık. Bu sefer vertical (yani dikey) bir layout olduğundan üstte boşluk bırakmış olduk.
v_box.addLayout(h_box) #üstte boşluk bıraktıktan sonra h_box layoutumuzu o boşluğun altına ekledik.
"""h_boxtaki butonlar orta sağ taraftaydı. Biz ne yaptık? v_box içine h_boxu koyduk. v_box dikey olduğundan ve stretch ile üstte boşluk bıraktığımızdan;
h_box içindeki butonlar sağda kalmaya devam etti ve v_box un içine girdiğinden alta yerleşmiş oldu."""
pencere.setLayout(v_box) # vboxu pencereye bu şekilde ekliyoruz.
pencere.show()
sys.exit(app.exec_())
Pencere()