2015-11-13 78 views
0

我是wxpython的新手。我正在嘗試編寫一個允許我選擇文件的小應用程序。 我想知道如何改變文件路徑框的寬度。更改FilePickerCtrl框寬度(wxPython)

我的代碼如下:

import wx 

class MainWindow(wx.Frame): 
    def __init__(self, parent, title): 
     wx.Frame.__init__(self, parent, title = title, size=(500, 400)) 
     self.Center() 
     self.panel = wx.Panel(self) 

     self.label1 = wx.StaticText(self.panel) 
     self.fileCtrl = wx.FilePickerCtrl(self.panel, size=(100, 50)) 

     row1 = wx.StaticBoxSizer(wx.StaticBox(self.panel, 1, 'Please select the input file:'), orient=wx.HORIZONTAL) 
     row1.Add(self.label1,0,wx.TOP | wx.RIGHT,70) 
     row1.Add(self.fileCtrl) 

     wrapper = wx.FlexGridSizer(1,1,20,20) 
     wrapper.AddGrowableCol(0) 
     wrapper.Add(row1,50,wx.TOP | wx.LEFT | wx.RIGHT | wx.ALIGN_CENTER,20) 
     self.panel.SetSizerAndFit(wrapper) 
     self.Centre() 
     #self.Fit() 

     self.Show() 

app = wx.App(False) 
win = MainWindow(None, "File selector") 
app.MainLoop() 

enter image description here

回答

1

總之,我不認爲你可以。
從你的例子看,我猜你正在MSW上運行,我的例子來自Linux,但在這種情況下應該沒有關係。
你的代碼看起來有點不合適,所以我把它清理了一下。嘗試一下,看看它是否有幫助。 你總是可以使用wx.FileDialog而不是wx.FilePicker

import wx 

class MainWindow(wx.Frame): 
    def __init__(self, parent, title): 
     wx.Frame.__init__(self, parent, title = title, size=(500, 400)) 
     self.panel = wx.Panel(self) 
     self.label1 = wx.StaticText(self.panel,wx.ID_ANY,"Select the Input File") 
     self.fileCtrl = wx.FilePickerCtrl(self.panel, message="Select the input file name") 
     self.selectedfile = wx.TextCtrl(self.panel,wx.ID_ANY,"None",size=(490,25)) 
     self.fileCtrl.Bind(wx.EVT_FILEPICKER_CHANGED, self.Selected) 
     row1 = wx.BoxSizer(wx.VERTICAL) 
     row1.Add(self.label1,0,wx.TOP | wx.RIGHT,5) 
     row1.Add(self.fileCtrl) 
     row1.Add(self.selectedfile) 
     self.panel.SetSizer(row1) 
     self.Show() 
    def Selected(self, event): 
     self.selectedfile.SetValue(self.fileCtrl.GetPath()) 
app = wx.App(False) 
win = MainWindow(None, "File selector") 
app.MainLoop()