qt中destroyed和close窗口有什么区别

qt的assistant中关于destroyed只有QObject类的该信号,其中说的很清楚“对象被destroyed前将立即发送该信号,其不能够被阻塞。该对象的所有子对象在信号发送以后会被立即销毁。”
而QWidget与QWindow差不多都是释放窗口相关资源。
QWidget的close槽函数是像widget发送QCloseEvent,如果widget未设置Qt::WA_DeleteOnClose标志的话,将隐藏widget,并不会销毁相关资源。如果设置了该标志,那么会再发送destroy信号,销毁相关资源。
QWindow的close槽是调用destroy来销毁窗口资源的。不过我们一般不直接使用qWindow。
综上,两者之间的区别就是close一般只是将窗口隐藏,而窗口实体实际上还存在于内存中,等待再次显示。而destroy则销毁窗体。

发布了118 篇原创文章 · 获赞 20 · 访问量 36万+

猜你喜欢

转载自blog.csdn.net/u014683488/article/details/104706546