如何检测一个小部件是否在 wxpython 中显示?
How to detect if a widget is shown or not in wxpython?
我如何知道小部件是否显示?
"self.IsShown" 用于 window。
小部件继承自 wx.Window,因此它们具有 IsShown 方法
import wx
from wx.lib import sized_controls
class TestFrame(sized_controls.SizedFrame):
def __init__(self, *args, **kwargs):
super(TestFrame, self).__init__(*args, **kwargs)
pane = self.GetContentsPane()
self.btn = wx.Button(pane, label='Hide')
self.btn.Bind(wx.EVT_BUTTON, self.on_btn)
self.btn_hidden = wx.Button(pane, label='Hidden?')
self.s_txt = wx.StaticText(pane, label='Button shown: True')
def on_btn(self, event):
is_shown = not self.btn_hidden.IsShown()
self.btn_hidden.Show(is_shown)
self.s_txt.SetLabel('Button shown: {}'.format(is_shown))
if is_shown:
self.btn.SetLabel('Hide')
else:
self.btn.SetLabel('Show')
if __name__ == '__main__':
wxapp = wx.App(False)
main_app_frame = TestFrame(None)
main_app_frame.Show()
wxapp.MainLoop()
我如何知道小部件是否显示?
"self.IsShown" 用于 window。
小部件继承自 wx.Window,因此它们具有 IsShown 方法
import wx
from wx.lib import sized_controls
class TestFrame(sized_controls.SizedFrame):
def __init__(self, *args, **kwargs):
super(TestFrame, self).__init__(*args, **kwargs)
pane = self.GetContentsPane()
self.btn = wx.Button(pane, label='Hide')
self.btn.Bind(wx.EVT_BUTTON, self.on_btn)
self.btn_hidden = wx.Button(pane, label='Hidden?')
self.s_txt = wx.StaticText(pane, label='Button shown: True')
def on_btn(self, event):
is_shown = not self.btn_hidden.IsShown()
self.btn_hidden.Show(is_shown)
self.s_txt.SetLabel('Button shown: {}'.format(is_shown))
if is_shown:
self.btn.SetLabel('Hide')
else:
self.btn.SetLabel('Show')
if __name__ == '__main__':
wxapp = wx.App(False)
main_app_frame = TestFrame(None)
main_app_frame.Show()
wxapp.MainLoop()