2013-03-21 2 views
1

QLabel 및 QPushbutton 객체를 QVBoxLayout에 추가하려고 할 때 문제가 있습니다. 문제는 사진Qt : QVBoxLayout의 Qlabel 및 QPushButton

Sample

다음

레이아웃 및 레이블을 만들고, 그것들을 추가하는 코드 예제처럼 그들 사이에 너무 많은 공간을 추가하는 것이다. 나중에 버튼을 추가 하겠지만, 다른 버튼 -> addWidget (버튼) 만 있으면된다.

jobbcimke= new QLabel(trUtf8("Jobb oldal")); 
jobbkozepcimke= new QLabel(trUtf8("Jobb part")); 
balcimke= new QLabel(trUtf8("Bal oldal")); 
balkozepcimke=new QLabel(trUtf8("Bal part")); 

jobbfelulet=new QVBoxLayout(); 
jobbkozepfelulet=new QVBoxLayout(); 
balkozepfelulet=new QVBoxLayout(); 
balfelulet=new QVBoxLayout(); 
osszefogo=new QHBoxLayout(); 

jobbfelulet->setAlignment(Qt::AlignRight); 
jobbkozepfelulet->setAlignment(Qt::AlignRight); 
balfelulet->setAlignment(Qt::AlignLeft); 
balkozepfelulet->setAlignment(Qt::AlignLeft); 

balfelulet->addWidget(balcimke); 
balkozepfelulet->addWidget(balkozepcimke); 
jobbfelulet->addWidget(jobbcimke); 
jobbkozepfelulet->addWidget(jobbkozepcimke); 

osszefogo->addLayout(balfelulet); 
osszefogo->addLayout(balkozepfelulet); 
osszefogo->addLayout(jobbkozepfelulet); 
osszefogo->addLayout(jobbfelulet); 

setLayout(osszefogo); 

어떻게 그 사이의 공간을 제거 할 수 있습니까? 아니면 더 좋은 방법이 있습니까? 레이아웃 크기 할당 레이블을 만들었습니다. 당신이 문서에 파고 경우

답변

1

당신은 또한 당신이 그것을 원하는 위치에 정확히 위치를 얻거나와 제약 조건을 적용하는 일부 QSpacerItems을 추가해야합니다, 당신은 요소 사이의 간격을 편집 할 수 있습니다 QLayouts위한 setSpacing(int x) 방법있다 setGeometry(QRect rect) 방법.

+0

QSpacerItems가 정확히 필요한데, 지금은 QLabels를 레이아웃에 넣을 필요가 없습니다. (그런데 setSpacing이 작동하지 않았지만 지금은 레이블이 필요 없으므로 괜찮습니다.) 고맙습니다! – Krav

+0

미래에 누군가가 올 경우를 대비하여 아무런 문제가 없습니다.'setSpacing'은 레이아웃을 어떻게 설정했는지에 따라 일관성없이 작동하는 이상한 것입니다. Qt 레이아웃은 훌륭하지만 원하는 결과를 얻으려면 종종 마사지가 필요합니다. –

관련 문제