2016-08-05 4 views
0

QPushButton의 클릭 (bool) 이벤트를 내 위젯의 개인 슬롯 mySlot()에 연결했습니다. 그러나 슬롯은 절대 호출되지 않습니다 (mySlot()에 중단 점을 배치했습니다). 저는 C++과 Qt5를 사용하고 있습니다.자신의 인스턴스에 대한 신호가 작동하지 않습니다.

MyLayout.h

class MyLayout : public QWidget 
{ 
Q_OBJECT 
public: 
    MyLayout(QWidget* parent = NULL); 
private: 
    QPushButton *next; 
private slots: 
    void mySlot(); 
} 

MyLayout.cpp

MyLayout::MyLayout(QWidget* parent) : QWidget(parent) 
{ 
    next = new QPushButton("Next Step"); 
    QObject::connect(next, SIGNAL(clicked(bool)), this, SLOT(mySlot())); 
} 
void MyLayout::mySlot() { /* do something */ } 

어떤 아이디어 : 나는 내 코드의 최소 버전을 썼다?

+2

신호/슬롯 헬퍼를 생성하기 위해 moc 용'Q_OBJECT' 매크로가 누락되었습니다. – drescherjm

+0

http://stackoverflow.com/questions/22221798/connect-no-such-slot-qtreeview – drescherjm

+0

방금 ​​내 생성자에 'QWidget'매개 변수를 추가했습니다. 하지만 'Q_OBJECT'매크로를 추가하면 링커 오류가 발생합니다. – Felix

답변

0

부모없는 버튼을 만들었으며 결코 표시하지 않았습니다. 그것을 부모 (this)를 제공함으로써 시작, 그래서 위젯과 함께 표시됩니다 :

next = new QPushButton("Next Step", this); 

그런 다음 layouts를 사용하는 방법을 배웁니다.

+0

시도했지만 작동하지 않습니다. – Felix