gpt4 book ai didi

python - 使用 wxPython 返回多个文件路径以在另一个函数中使用

转载 作者:行者123 更新时间:2023-11-28 22:02:51 24 4
gpt4 key购买 nike

我在这里要做的是从一个 wxPython 框架应用程序中选择多个文件,然后在同一个 wxPython 应用程序的另一个函数中使用这些文件路径。我意识到我可以使用以下代码来选择多个文件:

def OnOpen(self,e)
dialog = wx.FileDialog(self, "Choose a file", "", "", "*.", wx.MULTIPLE)
if dialog.ShowModal() == wx.ID_OK:
filelist = dialog.GetPaths()

所以 'filelist' 变量现在是用户选择的文件列表。但是,我似乎找不到在另一个函数中使用此列表的方法。我希望我可以在另一个函数中的这个函数中使用 return 语句并将它分配给一个变量,但它似乎不允许我这样做。我想这是因为我有一个按钮事件已经在使用这个功能。对此的任何帮助将不胜感激。

最佳答案

我不认为我完全理解这里的问题。 OnOpen函数是单击按钮的事件处理程序?所以它是在点击按钮时执行的。窗口应用程序(就像你使用 wxPython 的应用程序)通常是事件驱动的,它响应按钮点击等事件。主 GUI 线程循环并分析可由您的应用程序处理的事件。因此,当您编写应用程序时,这些事件处理程序是您要执行的操作的入口点。

我认为最好的方法就是使用其他函数并传递 filelist在参数中,例如:

def OnOpen(self,e)
dialog = wx.FileDialog(self, "Choose a file", "", "", "*.", wx.MULTIPLE)
if dialog.ShowModal() == wx.ID_OK:
filelist = dialog.GetPaths()
self.otherFunc(filelist)

def otherFunc(self, filelist):
"do something here"

正在保存 filelist有时可能会出现问题。正如我所说,您可能有多个入口点想要使用 filelist属性,你必须预测可能出现的问题。但正如我在开头所说的那样 - 我可能没有完全理解你的问题。

另一种可能性:也许您的问题是您想实际重用 OnOpen ?第一种可能性是通过 None作为一个论点,因为 e未使用。另一种更好的可能性是定义 OnOpen没有e参数并将事件绑定(bind)更改为 self.Bind(wx.EVT_BUTTON, self.OnButtonwx.EVT_BUTTON(<some object>, lambda evt: self.OnOpen()) .你在这里明确地说你不需要 evt争论。

关于python - 使用 wxPython 返回多个文件路径以在另一个函数中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10523058/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com