2012-09-19 3 views
1

도형 변경 대화 상자를 사용하려고했습니다. 즉, 단추를 클릭하면 대화 상자 크기가 커져서 추가 세부 정보가 커야합니다. 이를 수행하기 위해 버튼에 다음 코드를 작성했습니다.도형 변경 대화 상자

QObject::connect(ui->moreButton, SIGNAL(toggled(bool)), 
    ui->sgroupBox, SLOT(setVisible(bool))); 

그러나 대화 상자에는 아무런 변화가 없습니다. 이 경우 어떻게해야합니까?

hide() 함수를 사용하여 그리드에 배치하여 추가 세부 정보를 숨겼습니다. 추가 세부 사항은 숨겨지고 있지만 위젯의 크기는 변경되지 않습니다. 난 당신이 사용자 인터페이스의 버튼을 클릭 한 후 인 QDialog 상자의 크기를 조정하려고 제대로 질문을 이해하면

솔루션

+0

대화 상자에 내용이 표시 될 때 자동으로 크기가 조정되는 레이아웃이 포함되어있을 가능성이 있습니다. –

답변

0

저를 도와주세요?

QDialog는 QWidget에서 상속되므로 QWidget :: resize (int width, int height) 메서드를 호출 할 수 있습니다.

이제 단추를 누를 때 QDialog가 커지게하려면 토글 된 (bool) 신호를 크기 조정을 호출하는 슬롯에 연결하기 만하면됩니다.

즉. 예 :

QObject::connect(ui->moreButton, SIGNAL(toggled(bool)), whateverClassManagesYourQDialog, onButtonToggled(bool)); 

는 그런 다음 인 QDialog를 관리하는 클래스에서이 슬롯을 구현합니다.

// This is a slot in your class which implements QDialog 
whateverClassManagesYourQDialog::onButtonToggled(bool toggledState){ 
    ui->sGroupBox.setVisible(toggledState); // This will show or hide sGroupBox 
    resize(someIncrement,someIncrement); // This will grow your QDialog 
}