Как отключить / удалить поле ввода в 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()
Другие вопросы по тегам