wxPython检查对象是否存在

时间:2014-05-10 20:29:24

标签: wxpython exists destroy

我想检查位图按钮是否存在以及是否存在,然后销毁它,如果它不存在,则创建它。这是代码:

    try:
        shutdownbtn
    except NameError:
        sbex = False
    else:
        sbex = True

    if sbex:
        self.shutdownbtn.Destroy()
        print "Destroyed"

    if not sbex:
        self.shutdownbtn = wx.Bitmap("bin/Images/wstdwn.png")
        self.wstdwnbtn = wx.StaticBitmap(self, -1, self.shutdownbtn)
        self.wstdwnbtn.SetPosition((0, 550))
        self.wstdwnbtn.Bind(wx.EVT_LEFT_DOWN, self.wexit)
        self.wstdwnbtn.SetToolTip(wx.ToolTip("Exit to main menu."))

它会创建位图按钮,但不会删除它!为什么?我真的不知道。

2 个答案:

答案 0 :(得分:1)

这是因为您使用shutdownbtn而不是self.shutdownbtn。您还必须抓住AttributeError,而不是NameError

答案 1 :(得分:0)

你的意思是这样的:

    try:
        self.shutdown_showing
    except AttributeError:
        self.shutdown_showing = False
    else:
        self.shutdown_showing = True

    if self.shutdown_showing:
        self.shutdownbtn.Destroy()
        print "Destroyed"

    if not self.shutdown_showing:
        self.shutdownbtn = wx.Bitmap("bin/Images/wstdwn.png")
        self.wstdwnbtn = wx.StaticBitmap(self, -1, self.shutdownbtn)
        self.wstdwnbtn.SetPosition((0, 550))
        self.wstdwnbtn.Bind(wx.EVT_LEFT_DOWN, self.wexit)
        self.wstdwnbtn.SetToolTip(wx.ToolTip("Exit to main menu."))

因为它仍然相同......