如何在wx.lib.filebrowsebutton.FileBrowseButton中禁用/删除输入框?

时间:2013-08-28 12:48:04

标签: python wxpython filebrowse

看起来没有内置选项来禁用/删除InputBox/TextCtrl中的wx.lib.filebrowsebutton.FileBrowseButton部分,我确实想出了一个解决方法,只需将labelText设置为空白然后将它缩小以仅适合按钮本身,这种方式在视觉上你可以说没有正常按钮的区别,但我认为它不够好用。

那么有没有办法完全禁用/删除InputBox部分?或者也许是一种将普通按钮与文件浏览器功能绑定的方法?

1 个答案:

答案 0 :(得分:0)

如果您不需要textctrl,那么您实际上并不需要wx.lib.FileBrowseButton。您可以使用正常wx.Button启动wx.FileDialog实例。事实上,这就是wx.lib.FileBrowsBbutton所做的一切。这是相关的源代码,可以在这里查看整个内容:https://github.com/wxWidgets/wxPython/blob/master/wx/lib/filebrowsebutton.py

def OnBrowse (self, event = None):
        """ Going to browse for file... """
        current = self.GetValue()
        directory = os.path.split(current)
        if os.path.isdir( current):
            directory = current
            current = ''
        elif directory and os.path.isdir( directory[0] ):
            current = directory[1]
            directory = directory [0]
        else:
            directory = self.startDirectory
            current = ''
        dlg = wx.FileDialog(self, self.dialogTitle, directory, current,
                            self.fileMask, self.fileMode)

        if dlg.ShowModal() == wx.ID_OK:
            self.SetValue(dlg.GetPath())
        dlg.Destroy()