加载一个文件,将其发布到文本框中

2024-03-29 06:27:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我遇到了一个问题,我在wxpython中有一个GUI,我想在其中加载一个文件,然后我想在textCtrl中看到textfiles名称,这个名称已经放到面板上了 这是我的密码

def __init__(self, parent):
    wx.Frame.__init__(self, parent, wx.NewId(), "Load PDB",size=(240,200))
    panel=wx.Panel(self)
    pdb = wx.Button(panel, label="Browse...", pos=(170,10), size=(53,25))
    self.Bind(wx.EVT_BUTTON,self.getPdb,pdb)
    wx.StaticText(panel,-1,"Load PDB", (5,15))
    hey=wx.TextCtrl(panel,-1,"",pos=(60,10), size=(100,25))

def getPdb(self,event):
      dlg = wx.FileDialog(self, "Choose a file", os.getcwd(), "", "*.*", wx.OPEN)
      if dlg.ShowModal() == wx.ID_OK:
               path = dlg.GetPath()
               mypath=os.path.basename(path)
      dlg.Destroy()

任何帮助都将不胜感激


Tags: pathposself名称sizeinitdefload
1条回答
网友
1楼 · 发布于 2024-03-29 06:27:01

正如其中一条注释所提到的,您必须在init函数中指定一个名称作为实例变量,因此它在其他范围中可用。因此,请先执行以下操作:

self.hey=wx.TextCtrl(panel,-1,"",pos=(60,10), size=(100,25))

现在我们可以使用赛尔夫。嘿在第二种方法getPdb中:

def getPdb(self,event):
    dlg = wx.FileDialog(self, "Choose a file", os.getcwd(), "", "*.*", wx.OPEN)
    mypath = ''
    if dlg.ShowModal() == wx.ID_OK:
        path = dlg.GetPath()
        mypath=os.path.basename(path)
    dlg.Destroy()

    if mypath:
        self.hey.Clear()
        self.hey.AppendText(mypath)
    return

因为textctrl的高度,我假设你想先清除里面的内容。如果这不是你想要的,那么移除赛尔夫。嘿。明白了()行,添加任何要添加到mypath的分隔符(:,;,\n),并附加该分隔符。你知道吗

相关问题 更多 >