wxPython - 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 argumen ukuran konstruktornya. Posisi widget di dalam jendela ditentukan olehpos argumen konstruktornya.

import wx  

app = wx.App() 
window = wx.Frame(None, title = "wxPython Frame", size = (300,200)) 
panel = wx.Panel(window) 
label = wx.StaticText(panel, label = "Hello World", pos = (100,50)) 
window.Show(True) 
app.MainLoop()

Ini Absolute Positioning Namun 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.

API wxPython 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.

Manajer tata letak disebut Sizer di wxPython. Wx.Sizer adalah kelas dasar untuk semua subkelas sizer. Mari kita bahas beberapa sizer penting seperti wx.BoxSizer, wx.StaticBoxSizer, wx.GridSizer, wx.FlexGridSizer, dan wx.GridBagSizer.

SN Sizers & Deskripsi
1 BoxSizer

Pengukur ukuran ini memungkinkan kontrol untuk diatur secara baris atau kolom. Tata letak BoxSizer ditentukan oleh argumen orientasinya (baik wxVERTICAL atau wxHORIZONTAL).

2 GridSizer

Seperti namanya, objek GridSizer menampilkan kisi dua dimensi. Kontrol ditambahkan di slot kisi dengan urutan kiri-ke-kanan dan dari atas ke bawah.

3 FlexiGridSizer

Pengukur ini juga memiliki kisi dua dimensi. Namun, ini memberikan sedikit lebih banyak fleksibilitas dalam meletakkan kontrol di dalam sel.

4 GridBagSizer

GridBagSizer adalah pengukur serbaguna. Ia menawarkan lebih banyak peningkatan daripada FlexiGridSizer. Widget anak dapat ditambahkan ke sel tertentu di dalam grid.

5 StaticBoxSizer

StaticBoxSizer menempatkan pengukur kotak ke dalam kotak statis. Ini memberikan batas di sekitar kotak bersama dengan label di bagian atas.