我制作了一个充当窗口的小部件,当按下按钮时,它只是发出信号:

signals:
    void SaveTask( void );


我在mainwindow.cpp中定义(在构造函数中):

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


taskWindow =指向此信号发出的窗口的指针。
task_view =指向主窗口中带有插槽的treewidget的指针。

它的设计目的是使您在保存任务时将其显示在树视图中。

不幸的是,当我尝试运行该程序时,它会在连接线上造成段错误;当我删除它时,该程序就可以正常运行(当然除了此功能)。它确实可以编译,并且所有元素都已初始化且可用。我根本看不出这怎么会失败。

最佳答案

好像您在初始化taskWindow或task_view并使用未初始化的指针之前就已经进行了连接。

您也可以尝试使用此签名(应该是相同的东西,但只是出于很好的考虑)

signals:
    void SaveTask();

09-25 15:05