PyQt - Düzen Yönetimi

Bir GUI pencere öğesi, piksel cinsinden ölçülen mutlak koordinatları belirtilerek konteyner penceresinin içine yerleştirilebilir. Koordinatlar, setGeometry () yöntemi ile tanımlanan pencerenin boyutlarına göredir.

setGeometry () sözdizimi

QWidget.setGeometry(xpos, ypos, width, height)

Aşağıdaki kod parçacığında, 300 x 200 piksel boyutlarında üst düzey pencere, monitörde (10, 10) konumunda görüntülenir.

import sys
from PyQt4 import QtGui

def window():
   app = QtGui.QApplication(sys.argv)
   w = QtGui.QWidget()
	
   b = QtGui.QPushButton(w)
   b.setText("Hello World!")
   b.move(50,20)
	
   w.setGeometry(10,10,300,200)
   w.setWindowTitle(“PyQt”)
   w.show()
   sys.exit(app.exec_())
	
if __name__ == '__main__':
   window()

Bir PushButton pencere öğesi pencereye eklenir ve 50 piksel sağa doğru ve pencerenin sol üst konumunun 20 piksel altına yerleştirilir.

Bu Absolute Positioningancak aşağıdaki nedenlerden dolayı uygun değildir -

  • Pencere yeniden boyutlandırılsa bile widget'ın konumu değişmez.

  • Farklı çözünürlüklere sahip farklı görüntüleme cihazlarında görünüm tek tip olmayabilir.

  • Tüm formun yeniden tasarlanması gerekebileceğinden mizanpajda değişiklik yapmak zordur.

PyQt API, widget'ların konteyner içinde konumlandırılmasının daha zarif yönetimi için düzen sınıfları sağlar. Layout yöneticilerinin mutlak konumlandırmaya göre avantajları şunlardır:

  • Pencerenin içindeki widget'lar otomatik olarak yeniden boyutlandırılır.

  • Farklı çözünürlüklere sahip ekran cihazlarında tek tip görünüm sağlar.

  • Yeniden tasarlamaya gerek kalmadan dinamik olarak widget eklemek veya kaldırmak mümkündür.

İşte bu bölümde tek tek tartışacağımız Sınıfların listesi.

Sr.No. Sınıflar ve Açıklama
1 QBoxLayout

QBoxLayout sınıfı, widget'ları dikey veya yatay olarak sıralar. Türetilmiş sınıfları, QVBoxLayout (widget'ları dikey olarak düzenlemek için) ve QHBoxLayout'tur (widget'ları yatay olarak düzenlemek için).

2 QGridLayout

GridLayout sınıfı nesnesi, satırlar ve sütunlar halinde düzenlenmiş bir hücre ızgarası sunar. Sınıf, addWidget () yöntemini içerir. Hücrenin satır ve sütunlarının sayısı belirtilerek herhangi bir widget eklenebilir.

3 QFormLayout

QFormLayout, her satırın bir etiketle ilişkilendirilmiş bir giriş alanından oluştuğu iki sütun formu oluşturmanın uygun bir yoludur. Kural olarak, sol sütun etiketi içerir ve sağ sütun bir giriş alanı içerir.