2013-01-10 12 views
0

我無法編輯,輸入或甚至單擊TextCtrl或其他任何未構建在init函數中的小部件。無法編輯由__init__(wxPython)以外的其他函數構建的TextCtrl

比方說,我有這個位:

class firstpanel(wx.Panel): 

def __init__(self, parent): 
    wx.Panel.__init__(self, parent=parent) 

....

def receivetext(self, event): 
    panel = wx.Panel(self,size=wx.Size(850,650)) 
    wx.TextCtrl(self, -1, self.textfromsomewhereelse, (365, 145)) 

我看到TextCtrl在我的GUI框架適當的價值,但我不能修改它。 這就像我有一個無形的層,它不讓我通過。

我說我錯過了非常基本的東西,這是非常尷尬。

回答

1

receivetext中創建wx.TextCtrl的實例,但不會將其添加到panel。您也不保留對實例的引用,所以它將被垃圾收集器立即銷燬。

class MyFrame1 (wx.Frame): 
    def __init__(self): 
     super(MyFrame1, self).__init__() 
     fluid_sizer = wx.BoxSizer(wx.HORIZONTAL) 
     self.m_textCtrl1 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0) 
     fluid_sizer.Add(self.m_textCtrl1, 0, wx.ALL, 5) 
     self.SetSizer(fluid_sizer) 
     self.Layout() 

該示例示出了wx.BoxSizer創建和wx.TextCtrl。對文本控件的引用存儲爲self.m_textCtrl。文本控件不是添加到sizer中,使其可見。

+0

我明白了。謝謝! – Laci

相關問題