2013-04-11 7 views
0

SIGNAL(clicked())이 특정 푸시 버튼에서 방출 될 때마다 (동일한 프레임에서) 내 Gui에 QPushButton (또는 QLineEdit) 위젯을 생성하는 SLOT()을 만들고 싶습니다. 내 Gui. 예를 들면 : "exit"를 누르면 새로운 "thanks"버튼이 같은 프레임에 나타납니다.QT : 신호가 출력 될 때 새 버튼을 만드는 방법

Qt-GUI 도구가 아닌 C++ 코드를 사용하여 새로운 푸시 버튼을 만드는 방법은 무엇입니까? 당신이 슬롯이 있어야합니다

void ThisWindowClass::exitClicked() 
{ 
    // ... 
    QPushButton *thanksButton = new QPushButton(this /*parent widget*/); 
    connect(thanksButton, SIGNAL(clicked(bool)), this, SLOT(thanksClicked(bool))); 
    // ... 
} 

그리고 : 물론

+3

은 ... – Sam

+1

은 보라은' Qt에 의해 생성 된 ui _ *. h'-files. 마법의 Qt-GUI가 어떻게 코드로 변환되는지 보게 될 것입니다. – Misch

+1

"exit"버튼에 대한 핸들러에서 QPushButton 클래스의 객체를 만듭니다. 그리고 connect()를 사용하여 새로운 버튼을위한 새로운 슬롯을 할당하십시오. –

답변

3

, 당신은 WYSIWYG 도구 (예 : QtDesinger)

쓰기 "종료"버튼의 슬롯 내부에이 코드가없는 버튼과 같은 위젯을 만들 수 있습니다 방법이라는 thanksClicked : 당신은 버튼을 이미 눈에 보이지 않는, 만든이 어떤 이벤트가 발생할 때 볼 수 설정할 수

void ThisWindowClass::thanksClicked(bool checked) 
{ 
// Do something 
} 
+1

나는 또한'update()'호출을 제안 할 것이다. – Constantin