PyQt5 - Manajemen Tata Letak

Widget GUI dapat ditempatkan di dalam jendela kontainer dengan menentukan koordinat absolutnya yang diukur dalam piksel. Koordinat relatif terhadap dimensi jendela yang ditentukan oleh metode setGeometry ().

setGeometry () sintaks

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

Dalam potongan kode berikut, jendela tingkat atas berukuran 300 kali 200 piksel ditampilkan pada posisi (10, 10) di monitor.

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()

SEBUAH PushButton widget ditambahkan di jendela dan ditempatkan pada posisi 50 piksel ke arah kanan dan 20 piksel di bawah posisi kiri atas jendela.

Namun, Penentuan Posisi Mutlak ini tidak cocok karena alasan berikut -

  • Posisi widget tidak berubah meskipun jendela diubah ukurannya.

  • Penampilannya mungkin tidak seragam pada perangkat layar berbeda dengan resolusi berbeda.

  • Modifikasi dalam tata letak sulit karena mungkin perlu mendesain ulang seluruh formulir.

PyQt API menyediakan kelas tata letak untuk pengelolaan yang lebih elegan dari pemosisian widget di dalam penampung. Keunggulan manajer Tata Letak dibandingkan pemosisian absolut adalah -

  • Widget di dalam jendela secara otomatis diubah ukurannya.

  • Memastikan tampilan seragam pada perangkat layar dengan resolusi berbeda.

  • Menambahkan atau menghapus widget secara dinamis dapat dilakukan tanpa harus mendesain ulang.

Toolkit Qt mendefinisikan berbagai tata letak yang dapat digunakan dengan utilitas Qt Designer.

Berikut adalah daftar Kelas yang akan kita bahas satu per satu pada bab ini.

Sr.No. Kelas & Deskripsi
1 QBoxLayout

Kelas QBoxLayout menyusun widget secara vertikal atau horizontal. Kelas turunannya adalah QVBoxLayout (untuk mengatur widget secara vertikal) dan QHBoxLayout (untuk mengatur widget secara horizontal).

2 QGridLayout

Objek kelas GridLayout disajikan dengan kisi sel yang disusun dalam baris dan kolom. Kelas berisi metode addWidget (). Widget apa pun dapat ditambahkan dengan menentukan jumlah baris dan kolom sel.

3 QFormLayout

QFormLayout adalah cara mudah untuk membuat bentuk dua kolom, di mana setiap baris terdiri dari bidang input yang terkait dengan label. Sebagai konvensi, kolom kiri berisi label dan kolom kanan berisi kolom input.