wxpython如何通过DirDialog选择文件夹或压缩包,将文件夹火压缩包的夹路径显示在文本框中
时间: 2023-06-05 22:04:11 浏览: 291
您可以使用wx.DirDialog()函数来选择文件夹或压缩包的路径。具体步骤为:
1. 创建一个wx.Dialog()对话框,使用wx.DirDialog()函数来选择文件夹或压缩包的路径。
2. 使用wx.TextCtrl()函数创建一个文本框,显示选择的路径。
3. 将选择的路径显示在文本框中。
参考代码如下:
import wx
import os
import zipfile
class MyFrame(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, title=title, size=(400, 200))
panel = wx.Panel(self)
vbox = wx.BoxSizer(wx.VERTICAL)
hbox1 = wx.BoxSizer(wx.HORIZONTAL)
st1 = wx.StaticText(panel, label='Select Folder:')
hbox1.Add(st1, flag=wx.RIGHT, border=10)
self.tc = wx.TextCtrl(panel)
hbox1.Add(self.tc, proportion=1)
vbox.Add(hbox1, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=10)
hbox2 = wx.BoxSizer(wx.HORIZONTAL)
btn1 = wx.Button(panel, label='Browse')
btn1.Bind(wx.EVT_BUTTON, self.onBrowse)
hbox2.Add(btn1)
vbox.Add(hbox2, flag=wx.LEFT|wx.RIGHT|wx.TOP, border=10)
hbox3 = wx.BoxSizer(wx.HORIZONTAL)
btn2 = wx.Button(panel, label='OK')
btn2.Bind(wx.EVT_BUTTON, self.onOk)
hbox3.Add(btn2)
vbox.Add(hbox3, flag=wx.ALIGN_RIGHT|wx.RIGHT|wx.BOTTOM, border=10)
panel.SetSizer(vbox)
def onBrowse(self, event):
dialog = wx.DirDialog(None, "Choose a directory:")
if dialog.ShowModal() == wx.ID_OK:
path = dialog.GetPath()
self.tc.SetValue(path)
dialog.Destroy()
def onOk(self, event):
path = self.tc.GetValue()
if os.path.isdir(path):
print('Selected Folder:', path)
elif os.path.isfile(path) and path.endswith('.zip'):
print('Selected Zip:', path)
with zipfile.ZipFile(path, 'r') as zip_ref:
zip_ref.extractall(os.path.dirname(path))
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, "DirDialog Demo")
frame.Show(True)
return True
app = MyApp(0)
app.MainLoop()
在以上代码中,我们首先通过wx.DirDialog()函数创建一个选择文件夹或压缩包的对话框,然后通过wx.TextCtrl()函数创建一个文本框来显示选择的路径。在onBrowse()函数中,我们将选择的路径显示在文本框中。在onOk()函数中,我们可以判断选择的路径是文件夹路径还是压缩包路径,并进行相应的处理。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)