我有一個批量處理文件的小程序。這些文件使用映射文件來加載某些設置。地圖文件頂部有一行,用於指定它的目錄。在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)
我消除了大部分代碼,以上是給我帶來麻煩的地方。如何從Process類或MainFrame類中的函數中更改MainFrame類中的self.srcTc?如果沒有源於MainFrame類的處理程序,實際上指向self.srcTc時遇到了問題。
對不起,我不清楚例子,但您的建議已運作得在一定程度上。我現在可以在Process類的MainFrame類的TextCtrl中設置SetValue和GetValue。但它不會在屏幕上更新。 – wtfomgjohnny 2012-04-27 15:38:03
@wtfomgjohnny你的問題似乎與在Python中的OOP通常不是與wxPython和GUI(從我可以在這裏看到的)。這裏只是一個猜測:你在調用'wx.App'實例的'.MainLoop()'方法嗎?沒有一個工作的例子,我看不到問題... – jadkik94 2012-04-27 15:42:07
這裏是我的實施你的建議的完整代碼。 http://pastebin.com/aWr0fse0 – wtfomgjohnny 2012-04-27 15:44:30