Sırasıyla bu özellikleri inceleyelim;
Layout(left, right, up, down)margin: Bu widgetların layout içinde sol, sağ, üst ve altından ne kadar boşluk bırakacağını tutar.
LayoutSpacing: Layout arası widgetların arasındaki mesafeyi tutar. Burda -1 default olarak atanmış bir değerdir. Eğer elle atamak istersek 0 dan büyük değerler girebiliriz. -1 ve altı değerler geçersiz değerlerdir.
LayoutStrecth: Layout widgetlar için ne kadar oranda alan tutacağını setleyebiliriz. Normalde 0 dır. Fazla değere sahip olan daha geniş yer kaplar.
LayoutSizeConstraint: Bu Qt tarafindan layoutlarin aşırı daraltılması veya genişlemesini engellemek amaçlı boyuta sınır koyan özelliktir. Mesela bu özellik aktifken pencerimizi daraltmak istedik. QT, widgetlarin üst üste gelmeye başlıyacağı boyutu minimum kabul edip en fazla o kadar daralmasına izin verecektir. Bu özellik aktifse pencerelerimiz widgetların üst üste gelmeye başladığı anda resize'ı durdurur.
Ancak bunu aktif etmek çok düşük çözünürlüklerde sorunlar yaratacaktır. Aynı zamanda layout çakışmasını bile minimum kabul edeceğinden widget'lar çok daha fazla darabilecekken bile, daralmasına engel olabilir. Bu da minumum size belli olduğundan belki pencere daha fazla küçülemeyeğinden kullanıcı widgetları göremeyecektir. Yani widgetları görememesi yerine widget'ların az da olsa üst üste gelmesi bazen avantaj sağlayabilir. Bu yüzden bu özelliği setNoConstraintle kapatmamız gerekir. Şimdi bu özellikle ilgili seçenekleri inceleyelim.
SetDefaultConstraint: Default gelir. QT tarafindan minimum belirlenen size'ın altına düşemez. Ama direk bu size ile de başlamaz.
SetFixedSize: QT tarafından belirlenen size'da sabitlenir, altı veya üstü olamaz.
SetMinimumSize: QT tarafindan belirlenen minumum size'da kendini setler.
SetMaximumSize: QT tarafindan belirlenen maximum size'da kendini setler.
SetMinandMaxSize: QT default değerlerine gore minimum size minumuma, maximumsize da maximuna atanir. Bu aralık içinde her size resize edilebilir.
SetNoConstraint: Tamamen değişken olabilen her size getirilebilen bir pencere oluşturulur.
Şimdi biraz daha karmaşık bir durumu inceleyelim. Mesela aşağıdaki gibi bir durum olsun.
Tüm bu widgetları şeçip Layout in a Grid ile hizalayalım.
Şimdi dikkat ederseniz yukarda ki gibi bir görüntü oluştu ve burda toplamda 5 column var. Widget sayısına göre column sayısı oluşturulur. Daha fazla column için spacer kullanılabilir. Column sayısı önemlidir. Çünkü her bir column'ı belli oranlara bölüp widgetlarımızın kaç columnda bulunmasını istiyorsak ona göre ayarlayacağız.
Boş Column veya row silmek için içine spacer atıldıktan sonra delete tuşuna basılır.
Layout'u seçelim;
Şimdi yukardaki örneği inceleyelim. Columnların tamamını eşit dağılması amacıyla tüm strecth değerleri aynı olmalıdır. 0 da olabilirdi ama örnekte 10 yapılmıştır. Columnlardan birinin büyük olmasını istersek mesela 2 katı kadar, o column'ı 20 yapmalıyız. Columnlarımızı ayarladıktan sonra widgetlarımızın bu columnlardan kaç tanesine yayılmasını istiyorsak o columnın üzerine doğru boyutunu genişleterek o columnuda kaplamasını sağlarız. Aşağıdaki gibi;
Böylelikle tüm widget'larımızın dağılımını eşit oranlarda yapmış oluruz.