Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python GtkAboutDialog关闭按钮错误_Python_User Interface_Gtk_Pygtk - Fatal编程技术网

Python GtkAboutDialog关闭按钮错误

Python GtkAboutDialog关闭按钮错误,python,user-interface,gtk,pygtk,Python,User Interface,Gtk,Pygtk,我使用GtkAboutDialog,除了这个小部件的关闭按钮外,其他一切都很好。所有其他按钮工作正常,我不知道如何,但所有按钮都有默认回调,它们创建和破坏窗口。 但是GtkAboutDialog小部件的“关闭”按钮不起作用。我甚至看不到它的部件。那么,我可以访问它吗 [澄清]您看到的是gtk.AboutDialog-显示应用程序信息的弹出窗口(PyGTK 2.6中新增)。此窗口包含GtkHButtonBox小部件中包含的“关闭”按钮小部件。GtkHButtonBox小部件是我能够访问的一些高级小

我使用GtkAboutDialog,除了这个小部件的关闭按钮外,其他一切都很好。所有其他按钮工作正常,我不知道如何,但所有按钮都有默认回调,它们创建和破坏窗口。 但是GtkAboutDialog小部件的“关闭”按钮不起作用。我甚至看不到它的部件。那么,我可以访问它吗

[澄清]您看到的是gtk.AboutDialog-显示应用程序信息的弹出窗口(PyGTK 2.6中新增)。此窗口包含GtkHButtonBox小部件中包含的“关闭”按钮小部件。GtkHButtonBox小部件是我能够访问的一些高级小部件。关于如何到达“关闭”按钮并连接回调信号处理程序,有什么想法吗


对话框的信号传输方式与窗口不同。我在学习PyGTK时也犯了同样的错误

对话框的最基本形式是显示和运行对话框时使用:

aboutdialog.run()
通常情况下,您会立即致电:

aboutdialog.destroy()
.run()行是一个循环,它会一直运行,直到对话框中发生某些事情为止


有一个工作。

gtk.AboutDialog只是一个
gtk.Dialog
,您可以用同样的方式处理来自它的响应。对话框代码不是连接到按钮的单击信号,而是为您处理该信号,并从
run()
调用返回响应。您可以检查返回的响应值,以确定单击了哪个按钮


如果您试图覆盖某些行为,您可以连接到
gtk.Dialog的
响应信号
。这是一个老问题,但由于这是谷歌的第一个点击,我想我应该加入我找到的解决方案。您需要一个事件处理程序来显示about对话框,一个事件处理程序来关闭它。第一个可能会连接到您的帮助->关于菜单项的
activate
信号。后者应连接到about对话框的
响应
信号。这两个处理程序将如下所示:

def on_menuitemHelpAbout_activate(self, *args):
    self.builder.get_object('aboutdialog').show()
def on_aboutdialog_response(self, *args):
    self.builder.get_object('aboutdialog').hide()

在上面的示例中,我使用
GtkBuilder
查找我的about对话框,因为我已经用glade构建了接口。请注意,我使用的是
.show()
而不是
.run()
,因为我看不出在对话框关闭之前暂停程序执行的意义。最后,响应处理程序可以根据响应采取任何行动,但我在这里忽略了它。

您的问题不清楚,能否举例说明您正在尝试做什么?