私は、HyperlinkCtrl()ウィジェットからStaticText()に切り替える必要があります。また、wxPythonの特定のフィールドのために、いくつかの条件のもとでやり直したり、別の関数を呼び出す必要があります。再定義されたwxウィジェットを既に作成されたボックスサイザーに追加するには?
しかし、レイアウトとサイザーはすでにフィールドのリストで作成されており、その1つはHyperlinkCtrl()の前にあります。すべてのレイアウトとサイザーは2つの別々の機能に保持されています。
したがって、HyperlinkCtrl()のDisabled()
とEnabled()
の機能によって切り替えが行われます。
問題はStaticText()で再定義した後で、これをボックスサイザーに追加できませんでした。
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")
私はサイザーに入れても正常に動作していないハイパーリンクへのスタティックから切り替えることができませんでした。
私にこれを手伝ってください。
返信いただきありがとうございます。私にいくつかの例を教えていただけますか? – Nithya