Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.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
wxpython拖放一个文件夹,然后再拖放另一个文件夹以添加到列表中_Python_Drag And Drop_Wxpython - Fatal编程技术网

wxpython拖放一个文件夹,然后再拖放另一个文件夹以添加到列表中

wxpython拖放一个文件夹,然后再拖放另一个文件夹以添加到列表中,python,drag-and-drop,wxpython,Python,Drag And Drop,Wxpython,我正在使用下面的代码创建一个拖放窗口,我将文件夹拖放到其中以获得文件夹路径。我想要的是能够删除一个文件夹,然后删除另一个文件夹,这会添加到列表中,然后可能会删除另一个文件夹,这会添加到列表中,依此类推。当前,如果我在第一个文件夹之后放置另一个文件夹,它只会在窗口中显示第一个文件夹。如何让它显示正在添加的新项目,并将它们添加到列表中 def queue(self, event): self.Show() dt1 = MyFileDropTarget(self

我正在使用下面的代码创建一个拖放窗口,我将文件夹拖放到其中以获得文件夹路径。我想要的是能够删除一个文件夹,然后删除另一个文件夹,这会添加到列表中,然后可能会删除另一个文件夹,这会添加到列表中,依此类推。当前,如果我在第一个文件夹之后放置另一个文件夹,它只会在窗口中显示第一个文件夹。如何让它显示正在添加的新项目,并将它们添加到列表中

    def queue(self, event):
        self.Show()
        dt1 = MyFileDropTarget(self)
        self.tc_files = wx.TextCtrl(self.panel1, wx.ID_ANY, pos=(42, 120), size=(500, 405))
        self.tc_files.SetDropTarget(dt1)

    def notify(self, indir):
        """Update file in testcontrol after drag and drop"""
        self.tc_files.SetValue(indir[0])

class MyFileDropTarget(wx.FileDropTarget):
    """"""
    def __init__(self, window):
        wx.FileDropTarget.__init__(self)
        self.window = window

    def OnDropFiles(self, x, y, filenames):
        self.window.notify(filenames)

正如@JoranBeasley所评论的,您需要使用indir列表来设置显示的字符串:

self.tc_files.SetValue(",".join(indir))

应该这样做。

只需修改notify函数,将字符串设置为所有字符串,而不仅仅是第一个字符串。。。