Как отключить / удалить поле ввода в wx.lib.filebrowsebutton.FileBrowseButton?
Похоже, что нет встроенной опции для отключения / удаления InputBox/TextCtrl
участие в wx.lib.filebrowsebutton.FileBrowseButton
хорошо, я придумал обходной путь, который просто установлен labelText
чтобы очистить, а затем уменьшить его размер, чтобы он соответствовал только самой кнопке, таким образом, визуально вы не сможете отличить ее от обычной кнопки, но я не думаю, что с ней достаточно хорошо.
Так есть ли способ полностью отключить / удалить InputBox
часть? Или, может быть, способ связать обычную кнопку с функцией браузера файлов?
1 ответ
Если вам не нужен 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()