PyQt - 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.
Ini Absolute Positioning, bagaimanapun, 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 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.
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. |