Tata letak yang diperluas secara otomatis dengan Qt-Designer

217

Saya menggunakan Qt Designer.

Saya ingin membuat QVBoxLayoutyang secara otomatis akan diperluas untuk mengisi seluruh jendela.

Tata letak QVBoxLayouttetap diperbaiki.

Bagaimana saya bisa menyebabkannya QVBoxLayoutmeluas dan mengisi seluruh jendela melalui perancang?

Elazar Leibovich
sumber
Jika Anda hanya ingin menggunakan tata letak di Qt Designer, silakan lihat tips di bawah ini: stackoverflow.com/questions/1508939/qt-layout-on-qmainwindow

Jawaban:

366

Setelah membuat QVBoxLayoutQt Designer Anda, klik kanan pada latar belakang widget / dialog / jendela Anda (bukan QVBoxLayout, tetapi widget induk) dan pilih Lay Out -> Lay Out di Grid dari bagian bawah menu konteks. The QVBoxLayoutsekarang harus meregang untuk menyesuaikan jendela dan akan mengubah ukuran secara otomatis ketika seluruh jendela adalah ukurannya.

Greg S.
sumber
6
Terima kasih, saya sudah mencari solusi untuk masalah ini juga.
Simon H.
35
Sebenarnya, Anda tidak perlu membuat tata letak Grid sama sekali. Alih-alih membuat QVBoxLayout sendiri, batalkan pilihan semua item dan klik pada latar belakang widget. Kemudian pilih Lay Out -> Lay Out Vertically.
Michal Kottman
3
@Michal Kottman: Itu hanya berfungsi pada waktu desain. Itu tidak akan mengubah tata letak ketika pengguna mengubah ukuran jendela pada saat run time.
Jay
5
Baik kisi-kisi dan tata letak vertikal bekerja untuk saya saat desain dan runtime.
AndiDog
2
Saya ingin menambahkan sedikit detail: jika Anda ingin menambahkan tata letak peregangan sendiri ke halaman QTabWidget , Anda sebenarnya tidak dapat mengklik kanan pada latar belakang halaman, karena Anda akan memilih QTabWidget dan bukan tab yang relevan. Anda harus mengklik kanan pada label tab seperti yang ditunjukkan pada jendela desainer, dan kemudian pilih Lay Out -> Lay Out in a Grid
Emanuele Cipolla
15

Menurut dokumentasi , perlu ada set tata letak tingkat atas.

Tata letak tingkat atas diperlukan untuk memastikan bahwa widget Anda akan mengubah ukuran dengan benar ketika ukurannya diubah. Untuk memeriksa apakah Anda telah menetapkan tata letak tingkat atas, pratinjau widget Anda dan cobalah untuk mengubah ukuran jendela dengan menyeret pegangan ukuran.

Anda dapat mengatur satu dengan menghapus pilihan dan mengklik kanan pada formulir itu sendiri dan memilih salah satu tata letak yang tersedia di menu konteks.

Tata letak qt

Mahmoud Hanafy
sumber
2

Saya sudah mencoba mencari properti "fit to screen" tetapi tidak ada yang seperti itu.

Tetapi pengaturan widget "maximumSize" menjadi "some big number" (seperti 2000 x 2000) akan secara otomatis menyesuaikan widget dengan ruang widget induk.

Tero Nivala
sumber
6
Apa yang terjadi dengan teknik ini pada MacBook Pro dengan Retina Display (2880x1800)?
ta.speot.is
1
Cukup setel ke jumlah maksimum yang akan diterimanya (yang diperlihatkan Desainer kepada saya adalah 16777215) dan itu harus bekerja pada ukuran monitor apa pun.
andreb
0

Setelah Anda menambahkan tata letak Anda dengan setidaknya satu widget di dalamnya, pilih jendela Anda dan klik tombol "Perbarui" dari QtDesigner. Antarmuka akan diubah ukurannya pada ukuran paling optimal dan tata letak Anda akan sesuai dengan seluruh jendela. Kemudian ketika mengubah ukuran jendela, tata letak akan diubah ukurannya dengan cara yang sama.

Patrice Bernassola
sumber
Saya ment bahwa ketika pengguna mengubah ukuran seluruh jendela, tata letak vertikal (dan dengan demikian isinya) akan meregang agar sesuai. Saya tidak peduli bagaimana tampilannya di Qt Designer.
Elazar Leibovich
-7

Atur HorizontalPolicy & VerticalPolicy untuk kontrol / widget ke "Preferred" .

Cerah
sumber