Qt4关闭和销毁的区别?
Posted
技术标签:
【中文标题】Qt4关闭和销毁的区别?【英文标题】:Qt4 Differences between close and destroy? 【发布时间】:2014-06-30 12:04:50 【问题描述】:当我为对话框键入命令 destroy() 时(我还没有尝试过其他类型的窗口)Qt 会返回此消息:
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Extension: 130 (MIT-SHM)
Minor opcode: 3 (X_ShmPutImage)
Resource id: 0x0
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Extension: 130 (MIT-SHM)
Minor opcode: 3 (X_ShmPutImage)
Resource id: 0x0
但如果我输入“close()”,它就可以正常工作。
那么close()和destroy()有什么区别呢?或者有什么不同?
【问题讨论】:
【参考方案1】:如果您没有充分的理由,则不应使用 destroy()
。它应该是破坏的一部分,例如它在内部被调用以进行清理。错误消息表明在销毁期间,X 窗口资源被释放,仍然被引用。所以他们过早地被释放了。
另一方面,close()
方法是表示应关闭窗口/对话框的正确方法。它的作用与用户请求关闭窗口一样(例如,单击窗口框架标题上的关闭按钮)。
【讨论】:
换句话说:destroy
是一个受保护的方法是有充分理由的。我确信它可以在somewhere 中使用,但在 10 年的 Qt 编程中,我从未有过使用它的单一理由。哎呀,我早就忘记了它甚至在那里。以上是关于Qt4关闭和销毁的区别?的主要内容,如果未能解决你的问题,请参考以下文章