我在林间空地做了AboutDialog禁区,但是关闭按钮不起作用。我不知道如何该按钮连接到一个单独的功能,因为它坐落在一个小部件称为dialog-action_area

另一个问题是,如果我用的窗口管理器创建的关闭按钮,我不能再次打开它,因为它已经被摧毁。

我怎样才能改变这种做法,它只是隐藏?

有帮助吗?

解决方案

您需要在收到删除或取消信号调用控件的隐藏()方法:

response = self.wTree.get_widget("aboutdialog1").run() # or however you run it
if response == gtk.RESPONSE_DELETE_EVENT or response == gtk.RESPONSE_CANCEL:
  self.wTree.get_widget("aboutdialog1").hide()

您可以找到响应类型常量在的GTK文档

其他提示

正如任何其他对话窗口,他们需要以

  1. 请使用运行方法进行说明。
  2. 请使用 “效应初探” 信号的
  3. 第一个将阻塞主环路和将尽快对话框接收到响应,这可能是返回,点击在操作区域或按Esc任何按钮,或调用对话框的应答的方法,或“消灭”窗口,最后并不意味着西港岛线被破坏的窗口,这意味着run()方法将退出并返回响应。像这样:

    response = dialog.run()
    

    如果您使用调试器,你会发现,主循环,直到你点击一个按钮或试图关闭对话框停留在那里。一旦收到响应YOUT,然后就可以选择要useit。

    response = dialog.run()
    if response == gtk.RESPONSE_OK:
        #do something here if the user hit the OK button 
    dialog.destroy()
    

    在第二允许您使用的对话框中非阻塞的东西,那么你已经到您的对话框连接到“响应”的信号。

    def do_response(dialog, response):
        if response == gtk.RESPONSE_OK:
            #do something here if the user hit the OK button 
        dialog.destroy()
    
    dialog.connect('response', do_response)
    

    现在,你发现,你必须摧毁你的对话框

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top