qt 信号导致连接时出现分段错误
Posted
技术标签:
【中文标题】qt 信号导致连接时出现分段错误【英文标题】:qt signals cause segmentation fault on connect 【发布时间】:2012-08-18 15:46:01 【问题描述】:我制作了一个窗口小部件,当按下按钮时它会发出一个信号:
signals:
void SaveTask( void );
在我的 mainwindow.cpp 中我定义(在构造函数中):
connect( taskWindow, SIGNAL(SaveTask()), task_view, SLOT(UpdateFromTasks()) );
taskWindow = 指向发出此信号的窗口的指针。 task_view = 指向主窗口中带有插槽的 treewidget 的指针。
它被设计成当你保存一个任务时它会显示在树视图中。
不幸的是,当我尝试运行程序时,它会导致连接线上的段错误,当我删除它时,程序运行正常(当然除了这个功能之外)。它确实编译并且所有元素都已初始化且可用。我只是不明白这怎么会失败。
【问题讨论】:
可以显示构造函数代码吗? 【参考方案1】:似乎您在初始化 taskWindow 或 task_view 之前正在执行连接,并且正在使用未初始化的指针。
你也可以试试这个签名(应该是一样的,但只是为了更好的衡量)
signals:
void SaveTask();
【讨论】:
空指针应该导致connect
根据来源返回false
。不过,未初始化的指针几乎可以做任何事情。
谢谢。刚刚换掉那个词
这就是问题所在,一切都已初始化。其他信号起作用。只是我尝试发出的那个没有(在运行时它只是连接上的段错误)
修复它,显然我在初始化之前调用了连接函数。我的代码一团糟!
是的,有时即使你发誓你已经采取了所有步骤,你也可以忽略一些操作顺序。换个眼睛看看总是有帮助的!以上是关于qt 信号导致连接时出现分段错误的主要内容,如果未能解决你的问题,请参考以下文章