Pemprograman visual 2 dengan python
Layouts
1. Layout Management
2. QBoxLayout
3. QGridLayout
4. QFormLayout
5. QHBoxLayout
6. QVBoxLayout
Layouts
1. Layout Management
Widget GUI dapat ditempatkan di dalam jendela container dengan
menentukan koordinat absolutnya yang diukur dalam piksel. Koordinat
relatif terhadap dimensi jendela yang ditentukan oleh metode setGeometry
().
[Link](10,10,300,200)
- Buat file python baru dengan nama [Link]
Kode lengkap
import sys
from [Link] import QApplication,QWidget,QPushButton
app = QApplication([])
widget = QWidget()
# button = QPushButton('Click Me!')
# [Link](50,20)
[Link](10,10,300,200)
[Link]('Python Layout')
[Link]()
[Link]([Link]())
Berikut adalah daftar kelas yang akan kita bahas satu persatu di pembahasan
layout ini:
QBoxLayout
Kelas QBoxLayout melapisi widget secara vertikal atau horizontal. Kelas
turunannya adalah QVBoxLayout (untuk mengatur widget secara vertikal)
dan QHBoxLayout (untuk mengatur widget secara horizontal)
QGridLayout
Objek kelas GridLayout hadir dengan kisi-kisi sel yang disusun dalam baris
dan kolom. Kelas berisi metode addWidget (). Widget apa pun dapat
ditambahkan dengan menentukan jumlah baris dan kolom sel.
QFormLayout
QFormLayout adalah cara yang nyaman untuk membuat dua formulir
kolom, di mana setiap baris terdiri dari bidang input yang terkait dengan
label. Sebagai konvensi, kolom kiri berisi label dan kolom kanan berisi
bidang input.
2. QBoxLayout
Kelas QBoxLayout mengatur widget secara horizontal atau vertikal. Kelas ini
berasal dari dua kelas tata letak yang berbeda − QVBoxLayout (untuk
mengatur widget secara vertikal) dan QHBoxLayout (untuk mengatur widget
secara horizontal). Pada pemanfaatan konstruktor QBoxLayout, QBoxLayout
ini memiliki arah untuk menentukan opsi-opsi seperti LeftToRight,
RightToLeft, TopToBottom, atau BottomToTop.
Terkadang, QBoxLayout tidak mengelola semua child dan area widget. Jadi
kita harus menambahkannya ke tata letak induk sebelum kita membuat apa
pun untuk itu. Jenis tata letak ini disebut parentLayout yaitu addLayout ().
Metode margin di QBoxLayout
setContentsMargins() : Tata letak ini digunakan untuk margin untuk
mengatur lebar batas luar.
setSpacing () : Ini digunakan untuk mengatur properti spasi.
Berikut adalah methods pada QBoxLayout class
1 addWidget ()
Tambahkan widget ke BoxLayout.
2 addSpacing ()
Membuat kotak kosong yaitu digunakan untuk dialog.
3 addStretch ()
Buat kotak kosong dan dapat diregangkan.
4 addLayout ()
Tambahkan tata letak bersarang lainnya seperti kelas QLayout untuk
bekerja pada operasi geometris.
Margin dan Spasi di QBoxLayout
QBoxLayout menawarkan properti margin dan spasi untuk penyesuaian tata
letak. Margin menentukan ruang di luar tata letak, sementara spasi
mengontrol kesenjangan antara widget, meningkatkan daya tarik visual dan
keterbacaan.
Latihan QBoxLayout
- Buat file python baru dengan nama [Link]
from [Link] import QApplication, QWidget, QVBoxLayout,
QPushButton
app = QApplication([])
# Create a QWidget
widget = QWidget()
# Create a QVBoxLayout
layout = QVBoxLayout(widget)
# Create a QPushButton
button = QPushButton('Click me!')
# Set contents margins for the layout
[Link](30, 30, 30, 30)
# Set spacing between widgets
[Link](10)
# Add the button to the layout
[Link](button)
[Link]()
[Link]()
Hasil
Button Vertikal di QBoxLayout
QBoxLayout di PyQt memungkinkan pembuatan tombol vertikal dengan
mudah. Dengan menambahkan widget QPushButton secara vertikal, ini
menyederhanakan tata letak pengaturan tombol vertikal dalam aplikasi GUI
untuk meningkatkan interaksi pengguna.
Contoh
Dalam contoh berikut, kita membuat dua tombol yang ditambahkan ke tata
letak kotak vertikal. Ruang yang dapat diregangkan ditambahkan di antara
keduanya dengan metode addStretch (). Oleh karena itu, jika jendela tingkat
atas diubah ukurannya, posisi tombol secara otomatis akan dipindahkan.
- Buat file python baru dengan nama [Link]
import sys
from [Link] import QApplication, QWidget, QPushButton,
QVBoxLayout
def window():
app = QApplication([Link])
win = QWidget()
b1 = QPushButton("Button1")
b2 = QPushButton("Button2")
vbox = QVBoxLayout()
[Link](b1)
[Link]()
[Link](b2)
[Link](vbox)
[Link]("PyQt")
[Link]()
[Link]([Link]())
if __name__ == '__main__':
window()
Hasil
Button horizontal di QBoxLayout
Kelas QBoxLayout memudahkan untuk menumpuk tombol secara horizontal,
mengaturnya dari kiri ke kanan untuk antarmuka yang lebih ramah pengguna.
Contoh
Dalam contoh ini, kita dapat menggunakan tata letak kotak horizontal di mana
metode addStretch () menyisipkan ruang yang dapat diregangkan atau
kosong di antara dua objek tombol. Oleh karena itu, jendela diubah ukurannya
dan posisi tombol berubah secara dinamis.
- Buat file python baru dengan nama [Link]
import sys
from [Link] import QApplication, QWidget, QPushButton,
QHBoxLayout
def window():
app = QApplication([Link])
win = QWidget()
b1 = QPushButton("Button1")
b2 = QPushButton("Button2")
# Button appear in horizonatal direction
hbox = QHBoxLayout()
[Link](b1)
[Link]()
[Link](b2)
[Link](hbox)
[Link]("PyQt")
[Link]()
[Link]([Link]())
if __name__ == '__main__':
window()
Hasil :
Contoh berikutnya:
berikut menunjukkan bagaimana tata letak dapat disarangkan. Di sini, dua
tombol ditambahkan ke tata letak kotak vertikal. Kemudian, objek tata letak
kotak horizontal dengan dua tombol dan ruang kosong yang dapat
diregangkan ditambahkan ke dalamnya. Akhirnya, objek tata letak kotak
vertikal diterapkan ke jendela tingkat atas dengan metode setLayout ().
- Buat file python baru dengan nama [Link]
import sys
from [Link] import QApplication, QWidget, QPushButton,
QHBoxLayout, QVBoxLayout
def window():
app = QApplication([Link])
win = QWidget()
b1 = QPushButton("Button1")
b2 = QPushButton("Button2")
vbox = QVBoxLayout()
[Link](b1)
[Link]()
[Link](b2)
b3 = QPushButton("Button3")
b4 = QPushButton("Button4")
hbox = QHBoxLayout()
[Link](b3)
[Link]()
[Link](b4)
[Link]()
[Link](hbox)
[Link](vbox)
[Link]("PyQt")
[Link]()
[Link]([Link]())
if __name__ == '__main__':
window()
Hasil:
Latihan
Buatlah tampilan seperti berikut:
3. QGridLayout
4. QFormLayout
5. QHBoxLayout
6. QVBoxLayout