【问题标题】:Preference window destroyed when closed - Glade, Gtk, Python关闭时偏好窗口被破坏 - Glade,Gtk,Python
【发布时间】:2017-06-04 19:55:22
【问题描述】:

我的程序出现问题,当我通过关闭按钮关闭偏好窗口时,它无法正常重新打开。

我通过“文件>首选项”打开首选项窗口,效果很好......

但是当我通过右上角的关闭按钮关闭它时...

它将不再正常打开。为了记录,我连接到 close_pref_window 函数的后退按钮工作得很好。

要打开窗口,我会转到“文件>首选项”,它会触发一个函数,该函数只是preference_window.show_all() 并关闭它我调用pref_window.hide()。我也将 delete_event 连接到与后退箭头相同的功能,所以我不明白为什么一个工作而不是另一个工作。我在想关闭按钮先破坏窗口,然后调用函数......有什么建议吗?

【问题讨论】:

  • 我们需要查看您的代码。您的 delete-event 处理程序很可能是错误的。
  • 你有return True 吗?如果让 delete_event 运行到最后,所有其余代码仍然无法工作。
  • @DanielCopley 看看@theGtknerd 的评论。那部分很重要;没有它,delete-event 会认为你想要默认行为,即销毁窗口。这就是我们要求源代码的原因:我们不知道这是否是实际问题。您上面的评论只是在重申这个问题;是的,我们确实理解您的问题,但问题本身不足以解决您的问题。
  • 再看@theGtkner的评论;他们会告诉你该怎么做。
  • @DanielCopley 你能发布你的pref_window_hide (self, *args): 函数吗? @andlabs 反复询问您,您似乎没有听到或不想听到。警告,如果您不能给出不发布代码的理由并继续寻求帮助(我目前无法提供),我将在未来忽略您的所有问题。

标签: python linux gtk glade


【解决方案1】:

感谢@theGtknerd 和@andlabs 的帮助。正如 Gtknerd 所指出的,删除事件信号将继续执行其默认操作,除非您的函数最后包含 return True

def pref_window_close(self, *args):
    self.pref_window.hide()
    return True

再次感谢您的帮助:)

(我很抱歉我的问题不久前得到了回答,我只是误读了他们的 cmets :P)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多