0

TextCtrlや、実際にはinit関数に組み込まれていない他のウィジェットを編集、入力、またはクリックするのに問題があります。

私がこのビットを持っているとしましょう:

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))

GUIフレームに適切な値のTextCtrlが表示されますが、変更できません。それは私がその上に私を通り抜けさせない目に見えない層を持っているのとまったく同じです。

私は非常に基本的なものが欠けていると言います、そしてそれは非常に恥ずかしいです。

4

1 に答える 1

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ます。次に、テキストコントロールがサイザーに追加され、表示されます。

于 2013-01-10T21:04:14.310 に答える