Qt-Designer ile otomatik genişleyen düzen


217

Qt Designer'ı kullanıyorum.

QVBoxLayoutTüm pencereyi doldurmak için otomatik olarak genişleyecek bir oluşturmak istiyorum .

QVBoxLayoutKalıntıların düzeni düzeltildi.

QVBoxLayoutTasarımcının tüm penceresini genişletmesine ve doldurmasına nasıl neden olabilirim ?


Qt Designer'da düzeni kullanmak istiyorsanız, lütfen aşağıdaki ipuçlarına bakın: stackoverflow.com/questions/1508939/qt-layout-on-qmainwindow

Yanıtlar:


366

QVBoxLayoutQt Designer'da oluşturduktan sonra , widget / iletişim kutusu / pencerenizin arka planını sağ tıklayın ( QVBoxLayoutancak ana widget değil) ve bağlam menüsünün alt kısmındaki Kılavuzda Yerleştir -> Layout seçeneğini belirleyin. QVBoxLayoutŞimdi pencereye sığacak kadar açmalıyım ve tüm pencere yeniden boyutlandırıldığında otomatik boyutlandırmak olacaktır.


6
Teşekkür ederim, ben de bu soruna bir çözüm arıyordum.
Simon H.

35
Aslında, Izgara düzenini oluşturmanıza gerek yoktur. Kendiniz bir QVBoxLayout oluşturmak yerine, tüm öğelerin seçimini kaldırın ve widget'ın arka planını tıklayın. Ardından Düzen -> Dikey Olarak Düzen'i seçin.
Michal Kottman

3
@Michal Kottman: Bu sadece tasarım zamanında işe yarıyor. Kullanıcı pencereyi çalışma zamanında yeniden boyutlandırdığında düzeni değiştirmez.
Jay

5
Hem ızgara hem de dikey düzen, tasarım ve çalışma zamanında benim için çalışıyor.
AndiDog

2
Biraz detay eklemek istiyorum: QTabWidget sayfasına kendi kendine uzanan bir düzen eklemek istiyorsanız istiyorsanız, ilgili sekmeyi değil QTabWidget'ı seçeceğiniz gibi aslında sayfanın arka planını sağ tıklayamazsınız. Sekme etiketine tasarımcı penceresinde gösterilen şekilde sağ tıklamanız ve ardından Düzen -> Bir Izgarada Yerleştir'i
Emanuele Cipolla

15

Belgelere göre , bir üst seviye düzen seti olması gerekir.

Pencere yeniden boyutlandırıldığında widget'larınızın doğru şekilde yeniden boyutlandırılmasını sağlamak için üst düzey bir düzen gereklidir. Üst düzey bir düzen ayarlayıp ayarlamadığınızı kontrol etmek için widget'ınızı önizleyin ve boyut tutamacını sürükleyerek pencereyi yeniden boyutlandırmayı deneyin.

Seçimi temizleyerek ve formun kendisine sağ tıklayıp içerik menüsünde bulunan düzenlerden birini seçerek bir tane ayarlayabilirsiniz.

Qt düzenleri


2

Bir "ekrana sığdır" özelliği bulmaya çalıştım ama böyle bir şey yok.

Ancak widget'ın "maximumSize" değerini "bazı büyük sayılara" (2000 x 2000 gibi) ayarlamak, widget'ı otomatik olarak ana widget alanına sığdırır.


6
Retina Ekranlı MacBook Pro'da (2880x1800) bu teknikle ne olur?
ta.speot.Kasım

1
Sadece kabul edeceği maksimum sayıya ayarlayın (hangi Tasarımcı bana gösterir 16777215) ve herhangi bir monitör boyutunda çalışmalıdır.
andreb

0

Düzeninizi içinde en az bir widget ekledikten sonra, pencerenizi seçin ve QtDesigner'ın "Güncelle" düğmesini tıklayın. Arayüz en uygun boyutta yeniden boyutlandırılacak ve düzeniniz tüm pencereye sığacak. Ardından pencereyi yeniden boyutlandırırken, düzen de aynı şekilde yeniden boyutlandırılır.


Kullanıcı tüm pencereyi yeniden boyutlandırdığında, dikey mizanpajın (ve dolayısıyla içeriğinin) ona uyacak şekilde uzandığını belirtiyorum. Qt Designer'da nasıl göründüğü umurumda değil.
Elazar Leibovich

-7

Denetimler / widget'lar için horizontalPolicy & VerticalPolicy'yi "Tercihli" olarak ayarlayın .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.