2017-12-10 5 views
0

사용자 정의 대화 상자를 만들고 싶으므로 표준 QDialog를 중심으로 클래스를 만들고 싶습니다. 목표는 Dialog를 생성하는 생성자를 호출하고 show() 함수를 호출하여 표시되도록해야합니다. 다음 단계는 내 위젯 (Dialog 생성자를 호출) 푸시 버튼과 show() 함수를 연결하는 것입니다.특정 대화 상자 내에서 QDialog로 Qt 내 클래스 작성

내 헤더는 다음과 같습니다

#include <QDialog> 

class Dialog_Setting : public QDialog 
{ 
    Q_OBJECT 
    public: 
    Dialog_Setting(); 

    public slots: 
    void show(void); 

    private: 
    QDialog * dialog; 
}; 

내 통화 당 : 내 연결을 꺼내어 새로운 오류가 발생했습니다

#include "Dialog_Setting.h" 

Dialog_Setting::Dialog_Setting() 
{ 
    dialog = new QDialog; 
} 

void Dialog_Setting::show() 
{ 
    dialog->show(); 
} 

. 수업 시간에 문제가 있습니까?

도와 Dialog_Setting '

덕분에 vtable에`정의되지 않은 참조는, I에 유래가

+0

'Dialog_Setting'의 완전한 클래스를 보여줍니다. – eyllanesc

+1

Qt 제작자로 일하십니까? 그렇다면 Qmake – JLev

답변

0

show() 그래서 당신이 할 수있는 connect() 물건 그것에 슬롯로 구현되어 있는지 확인 사랑 :

#include <QDialog> 

class Dialog_Setting : public QDialog 
{ 
    Q_OBJECT 
public: 
    Dialog_Setting(); 

public slots: 
    void show(); 
}; 

012 또한 상속하는 것을 잊었습니다.또는 QObject 기반 과 같은 클래스 클래스와 매크로 Q_OBJECT를 선언 할 수 있습니다. 이 모든 것들은 사용자 정의 클래스가 connect()을 통해 다른 클래스와 통신하도록 요구됩니다.

+0

을 실행하십시오. 그러나 새로운 Qt 구문에서 우리는 더 이상 슬롯이 필요 없으며, 공용 함수 또한 그것을 수행합니다 ..? 시도해 보니 문제가 해결되지 않습니다 .. –

+0

@TomoBogdanovic 업데이트 답변. 내 코드에서 모든 작은 세부 사항을 알아 차리십시오. – karlphillip

+0

지금 변경했고, 연결을 꺼 냈습니다. 문제가 다른 곳에서있는 것처럼 보입니다. –