【问题标题】:Qt4 Differences between close and destroy?Qt4关闭和销毁的区别?
【发布时间】: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()有什么区别呢?或者有什么不同?

【问题讨论】:

    标签: qt pyqt destroy qdialog


    【解决方案1】:

    如果您没有充分的理由,则不应使用 destroy()。它应该是破坏的一部分,例如它在内部被调用以进行清理。错误消息表明在销毁期间,X 窗口资源被释放,仍然被引用。所以他们过早地被释放了。

    另一方面,close() 方法是表示应关闭窗口/对话框的正确方法。它的作用与用户请求关闭窗口一样(例如,单击窗口框架标题上的关闭按钮)。

    【讨论】:

    • 换句话说:destroy 是一个受保护的方法是有充分理由的。我确信它可以在somewhere 中使用,但在 10 年的 Qt 编程中,我从未有过使用它的单一理由。哎呀,我早就忘记了它甚至在那里。
    猜你喜欢
    • 2014-05-10
    • 1970-01-01
    • 2014-03-08
    • 1970-01-01
    • 2012-08-13
    • 2013-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多