2013-08-22 5 views
2

저는 Qt의 초보자입니다. 어쨌든 버튼을 누르면 위젯을 표시하기 위해 신호와 슬롯을 사용하려고합니다. 위젯을 만들었고 connect() 일을 모두 끝냈습니다.하지만 SLOT()에 무엇을 넣어야합니까? 쇼 (위젯)를 시도했지만, 솔직히 말해서 나는 거기에 무엇을 넣을 지 전혀 모른다.Qt 푸시 버튼 신호 및 슬롯

답변

6

QWidget에는 show()이라는 공용 슬롯이 있습니다. 버튼의 clicked() 신호를 위젯의 show() 슬롯에 연결할 수 있습니다. Read more about signals and slots here.

예 :

QPushButton *button = new QPushButton(this); 
QWidget *widget = new QWidget(this); 
widget->setWindowFlags(Qt::Window); 
connect(button, SIGNAL(clicked()), widget, SLOT(show())); 

당신은 또한 자신의 슬롯을 만들고 거기에서 widget->show()를 호출 할 수 있습니다. 그런 다음 버튼의 clicked() 신호를 슬롯에 연결하십시오.

예 :

//myclass.h 
... 
public: 
    QWidget *myWidget; 

public slots: 
    void mySlot(); 

//myclass.cpp 
... 
    connect(button, SIGNAL(clicked()), this, SLOT(mySlot())); 
... 

void MyClass::mySlot() 
{ 
    myWidget->show(); 
}