在GTK+;

在GTK+;,gtk,pygtk,Gtk,Pygtk,我正在努力找出如何正确使用文件选择器按钮。阅读GtkFileChooser按钮、GtkFileChooser对话框和GtkFileChooser上的参考手册到目前为止没有帮助。我尝试连接到未记录的信号文件集GtkFileChooserButton,并从这里调用get\\u filename(),但它的行为似乎非常不可靠。当用户单击按钮并选择一个文件时,到目前为止,它工作正常 但是,如果在单击相同的按钮(已经设置了文件名)后,用户改变主意并关闭“打开文件”对话框,get\\u filename()

我正在努力找出如何正确使用文件选择器按钮。阅读
GtkFileChooser按钮
GtkFileChooser对话框
GtkFileChooser
上的参考手册到目前为止没有帮助。我尝试连接到未记录的信号文件集
GtkFileChooserButton
,并从这里调用
get\\u filename()
,但它的行为似乎非常不可靠。当用户单击按钮并选择一个文件时,到目前为止,它工作正常

但是,如果在单击相同的按钮(已经设置了文件名)后,用户改变主意并关闭“打开文件”对话框,
get\\u filename()
在文件保持设置的情况下返回None
(一种类型,我使用pygtk编写)。更奇怪的是,如果我稍后从另一个信号处理程序中调用该按钮上的get_filename(),文件名将返回到用户以前设置的文件名。顺便说一句,只有关闭对话框才可能导致问题,按“取消”可以正常工作。

不清楚的问题:

如果您的意思是如何区分所选的有效文件: 如果您致电Run,您将得到回复:
Gtk::RESPONSE_ACCEPT
如果用户选择了一个文件并接受了该文件(单击“确定”)

因此,仅当文件被接受时才获取文件名

如果您指的是如何重置文件路径:
请参见
gtk FileChooser->set_ucurrent_folder
(文件名)(没有空格)

对不起,我自己没有在对话框中调用Run。我只是把FileChooserButton放在我的窗口上,它在单击时调用对话框。