2017-12-10 4 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; 
}; 

私の.cpp:私は私の接続を取り出し、新しいエラーを取得している

#include "Dialog_Setting.h" 

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

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

。 私のクラスで何が問題になっていますか?

あなたの助けをDialog_Setting」

感謝のためのvtable `への未定義の参照が、私はStackOverflowのは

+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

今変更して接続を取り出しましたが、問題は別の場所にあるようです –

関連する問題