У меня есть небольшая программа, в которой пакет обрабатывает файлы. Эти файлы используют файл карты для загрузки определенных параметров. Файл карты имеет строку вверху, которая указывает, для какого каталога она предназначена.Изменение элемента в другом кадре в wxPython
В настоящее время я могу прочитать строку и назначить ее переменной пути источника (sPath). Я хочу обновить TextCtrl для исходного каталога, однако он находится в классе MainFrame, и я загружаю файл карты в другой класс.
class Process(wx.Panel):
def loadMap(self, event):
MainFrame.sPath = str(mapFile.readline()).strip("\n")
MainFrame.loadSource(MainFrame())
class MainFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title="DICOM Toolkit", size=(800,705))
self.srcTc = wx.TextCtrl(self.panel, 131, '', size=(600,25), style=wx.TE_READONLY)
def loadSource(self):
self.srcTc.SetValue(MainFrame.sPath)
Я исключил большую часть кода, и что выше, где он причиняет мне неприятности. Как изменить self.srcTc в классе MainFrame либо из класса Process, либо из функции в классе MainFrame? У меня возникают проблемы с фактическим указанием на self.srcTc без обработчика, который связан с классом MainFrame.
Извините за неясные примеры, но ваше предложение в какой-то мере сработало. Теперь я могу SetValue и GetValue в TextCtrl в классе MainFrame из класса Process. Однако он не обновляется на экране. – wtfomgjohnny
@wtfomgjohnny Ваша проблема, похоже, связана с OOP в Python вообще не с wxPython и GUI (из того, что я вижу здесь). Просто угадайте здесь: вы вызываете метод '.MainLoop()' 'wx.App''? Без рабочего примера я не вижу проблемы ... – jadkik94
Вот полный код с моей реализацией вашего предложения. http://pastebin.com/aWr0fse0 – wtfomgjohnny