默认情况下在wxpython中隐藏TextCtrl
我想要一个textctrl,它被放在一个水平框内。 我用这个代码做了这个atm机: self.myTextCtrl=wx.TextCtrl(面板,-1,“bleh”) self.vbox.Add(self.myTextCtrl,比例=1) 此代码在屏幕上打印我的标签 但是,我在上面有一个单选按钮(默认为false),当我将其设置为true时,我希望框显示出来。 我试着打电话 self.myTextCtrl.Hide() (隐藏发生在收音机按钮切换触发的事件中) 但这会导致以后无法加载textctrl 有人告诉我这与wxpython在没有盒子的情况下编译你的程序有关,因为你不喜欢它,但我在网上找不到这方面的信息默认情况下在wxpython中隐藏TextCtrl,wxpython,Wxpython,我想要一个textctrl,它被放在一个水平框内。 我用这个代码做了这个atm机: self.myTextCtrl=wx.TextCtrl(面板,-1,“bleh”) self.vbox.Add(self.myTextCtrl,比例=1) 此代码在屏幕上打印我的标签 但是,我在上面有一个单选按钮(默认为false),当我将其设置为true时,我希望框显示出来。 我试着打电话 self.myTextCtrl.Hide() (隐藏发生在收音机按钮切换触发的事件中) 但这会导致以后无法加载textct
请帮忙。我快速地举了一个肮脏的例子。单选按钮一旦设置为True,就不能“取消选中”,除非您在组中使用它们,所以我还提供了一个使用复选框小部件的示例。我还添加了一个空白文本控件,作为接受焦点而无需为其他小部件设置事件所需的控件:
import wx
########################################################################
class MyPanel(wx.Panel):
""""""
#----------------------------------------------------------------------
def __init__(self, parent):
"""Constructor"""
wx.Panel.__init__(self, parent)
txt = wx.TextCtrl(self)
radio1 = wx.RadioButton( self, -1, " Radio1 ")
radio1.Bind(wx.EVT_RADIOBUTTON, self.onRadioButton)
self.hiddenText = wx.TextCtrl(self)
self.hiddenText.Hide()
self.checkBtn = wx.CheckBox(self)
self.checkBtn.Bind(wx.EVT_CHECKBOX, self.onCheckBox)
self.hiddenText2 = wx.TextCtrl(self)
self.hiddenText2.Hide()
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(txt, 0, wx.ALL, 5)
sizer.Add(radio1, 0, wx.ALL, 5)
sizer.Add(self.hiddenText, 0, wx.ALL, 5)
sizer.Add(self.checkBtn, 0, wx.ALL, 5)
sizer.Add(self.hiddenText2, 0, wx.ALL, 5)
self.SetSizer(sizer)
#----------------------------------------------------------------------
def onRadioButton(self, event):
""""""
print "in onRadioButton"
self.hiddenText.Show()
self.Layout()
#----------------------------------------------------------------------
def onCheckBox(self, event):
""""""
print "in onCheckBox"
state = event.IsChecked()
if state:
self.hiddenText2.Show()
else:
self.hiddenText2.Hide()
self.Layout()
########################################################################
class MyFrame(wx.Frame):
""""""
#----------------------------------------------------------------------
def __init__(self):
"""Constructor"""
wx.Frame.__init__(self, None, title="Radios and Text")
panel = MyPanel(self)
self.Show()
if __name__ == "__main__":
app = wx.App(False)
f = MyFrame()
app.MainLoop()