0

ウィンドウとして動作するウィジェットを作成しました。ボタンを押すと、信号が送信されます。

signals:
    void SaveTask( void );

私のmainwindow.cppで(コンストラクターで)定義します:

connect( taskWindow, SIGNAL(SaveTask()), task_view, SLOT(UpdateFromTasks()) );

taskWindow=このシグナルが発信されるウィンドウへのポインター。task_view=スロットのあるメインウィンドウのtreewidgetへのポインタ。

タスクを保存すると、ツリービューに表示されるように設計されています。

残念ながら、プログラムを実行しようとすると、接続回線でセグメンテーション違反が発生します。プログラムを削除すると、プログラムは正常に実行されます(もちろんこの機能は別として)。コンパイルされ、すべての要素が初期化されて使用可能になります。これがどのように失敗するのか、私にはわかりません。

4

1 に答える 1

2

taskWindowまたはtask_viewを初期化し、初期化されていないポインタを使用する前に、接続を行っているようです。

また、この署名を試すこともできます(これは同じことですが、念のために)

signals:
    void SaveTask();
于 2012-08-18T16:13:29.413 に答える