• 5220阅读
  • 1回复

如何避免在QT4.4中删除一个类引出这样的debug信息 [复制链接]

上一主题 下一主题
离线断刀刀客
 
只看楼主 倒序阅读 楼主  发表于: 2009-02-05
— 本帖被 XChinux 执行加亮操作(2009-02-06) —
      环境:QT4.4
      有两个类,A和B。在类A中new一个类B。在类B的closeEvent中,发送一个信号给类A。当类A椄收到这个信号时就把类B deleter掉!
      在实际情况中,delete类B会引起如下的debug信息:
QObject: Do not delete object, 'qt_dockwidget_closebutton', during its event handler!
QObject: Do not delete object, 'unnamed', during its event handler!


请问:如何删除类B不会引出上述的debug信息?
离线sbtree
只看该作者 1楼 发表于: 2009-02-05
这样不行,B发出信号之后,所有接收该信号的槽将被执行,直到所有槽执行完以后,B才会继续执行emit后面的语句,也就是说当A在收到该信号的槽中执行删除B的操作时,B还在被引用,当然系统不允许删除了。
建议:试一试deleteLater()
windows 7 + VC++2008 + Qt4.5.2
快速回复
限100 字节
 
上一个 下一个