【问题标题】:pygtk troubles with drag and drop: file to GtkFileChooserButtonpygtk 拖放问题:文件到 GtkFileChooserButton
【发布时间】:2012-01-28 19:20:36
【问题描述】:

我的应用程序有一个 GtkFileChooserButton,您可以使用它来打开选择器小部件并选择单个文件......然后对该文件执行操作。这行得通。

我还为按钮添加了拖放功能。可以,但是有问题。

简而言之,FileChooserButton 的第一个 dnd 触发了文件设置信号,并且似乎已经起作用, -- 名称从“( None )”更改为文件名,如果您随后单击按钮,它会弹出一个选择器小部件,显示选择的正确文件; 但是,正如您从下面的调试输出中看到的那样,get_filename() 没有返回文件名!反正不是第一次。

我们第二次将文件 dnd 到按钮上(无论是不同的文件还是相同的文件),一切顺利,get_filename() 返回文件名。为什么?

当我将三个文件拖到按钮上时,这是我的程序的调试输出,一次一个:

[on_file-set] FileChooserButton.get_filename() output:
None

[on_file-set] FileChooserButton.get_filename() output:
'/home/ryran/Desktop/priv.txt'

[on_file-set] FileChooserButton.get_filename() output:
'/home/ryran/Desktop/kinamppost'

PS:当我这样做时,第一个和第二个 dnd 实际上是同一个文件。

如果您想查看完整的应用程序,请访问http://github.com/ryran/pyrite,我很想发布代码,但实际上没有任何内容可发布!我没有做 drag_dest_set() 因为 FileChooserButton 已经支持 dnd。所以我所做的只是为 FileChooserButton 的文件设置信号定义一个 cb。所以呃..是这样的:

def action_chooserbtn_file_set(self, widget):
    print "[on_file-set] FileChooserButton.get_filename() output:\n{!r}\n".format(widget.get_filename())

为了记录,我还尝试通过定义 drag_dest_set 来执行所有这些操作,但得到了相同的结果。

还有什么要说的?我开始认为这是一个错误。

【问题讨论】:

    标签: python gtk pygtk drag-and-drop


    【解决方案1】:

    事实证明这确实是一个 GTK+ 错误。与 IRC 上的开发人员交谈。他帮助我意识到这一点,然后鼓励我发布错误报告,我照做了——https://bugzilla.gnome.org/show_bug.cgi?id=669718

    【讨论】:

      猜你喜欢
      • 2012-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-09
      • 1970-01-01
      相关资源
      最近更新 更多