Wxpython 如何将重新定义的wx小部件添加到已创建的框大小器中?

Wxpython 如何将重新定义的wx小部件添加到已创建的框大小器中?,wxpython,wxwidgets,Wxpython,Wxwidgets,我必须从HyperlinkCtrl()小部件切换到StaticText(),并在某些情况下反转,或者为wxPython中的一个特定字段调用不同的函数 但是布局和大小调整器已经用字段列表创建,其中一个是我们之前提到的HyperlinkCtrl()。所有布局和大小调整器都保存在两个单独的函数中 因此,切换是通过HyperlinkCtrl()的Disabled()和Enabled()函数实现的 问题是在使用StaticText()重新定义后出现的,无法将其添加到box sizer中 def creat

我必须从HyperlinkCtrl()小部件切换到StaticText(),并在某些情况下反转,或者为wxPython中的一个特定字段调用不同的函数

但是布局和大小调整器已经用字段列表创建,其中一个是我们之前提到的HyperlinkCtrl()。所有布局和大小调整器都保存在两个单独的函数中

因此,切换是通过HyperlinkCtrl()的
Disabled()
Enabled()
函数实现的

问题是在使用StaticText()重新定义后出现的,无法将其添加到box sizer中

def createLayout(self):

         #some code 
         ........
         self.Author = wx.HyperlinkCtrl(self, -1, "", "~")
         self.Author.SetFont(self.fontSmall)
         ..........

def createSizers(self):
        ............
        self.mainSizer = wx.BoxSizer(wx.VERTICAL)
        ...............
        self.DetailsSizer = wx.BoxSizer(wx.VERTICAL)
        self.DetailsSizer.Add(self.Author, 0, wx.ALIGN_LEFT)
        .................
def changeFunc(self):
        if true
          self.hyperFunc()
        else
          self.statisFunc()
为了禁用和启用小部件,我采用了以下方法

def staticFunc(self):
    # Author & URL

    self.Author.Hide()
    if self.Author.IsEnabled():
        self.Author = wx.StaticText(self, -1, "N/A")
        self.Author.SetFont(self.fontSmall)
        self.Author.Disable()
    self.Author.Show()

def hyperFunc(self):
     self.Author = wx.HyperlinkCtrl(self, -1, "", "")
     self.Author.Enable()
     self.Author.SetURL("name")
通过上面的更改,创建了staticText,但我无法将其放入sizer,并且从staticText切换到hyperlink也无法正常工作


请在这方面帮助我。

您应该从一开始就将两个小部件添加到sizer,但要隐藏其中一个。当您想要切换时,请隐藏另一个,并显示以前隐藏的。

谢谢您的回复,您能给我一些示例吗?