wxpython按钮事件问题
ringa_lee
ringa_lee 2017-04-17 17:36:15
[Python讨论组]

在用wxpytohn练习事件,做了一个测试程序,鼠标点击按钮,执行testEvent方法弹出一个MessageBox。
在运行的时候,TestEvent方法却直接执行了,而且点击按钮没有响应。
大家帮我看看是什么问题导致的?

#encoding:utf-8
import wx

class TestClass(wx.Frame):

    txt = None

    def __init__(self, parent, title):
        wx.Frame.__init__(self, parent, title=title, size=(600, 600))
        self.Center()

        pannel = wx.Panel(self, -1)

        mybutton = wx.Button(pannel, label=u'我是按钮', pos=(30, 30), size=(80, 26))
        self.txt = wx.StaticText(pannel, -1, u'', style=wx.ALIGN_RIGHT, pos=(30, 64), size=(200, 200))

        self.Bind(wx.EVT_LEFT_DOWN, self.testEvent(), mybutton)

        self.Show()

    def testEvent(self):
        wx.MessageBox(u"我被点击了!")


app = wx.App(False)
frame = TestClass(None, 'Test Program')
app.MainLoop()
ringa_lee
ringa_lee

ringa_lee

全部回复(1)
大家讲道理
class TestClass(wx.Frame):

    txt = None

    def __init__(self, parent, title):
        wx.Frame.__init__(self, parent, title=title, size=(600, 600))
        self.Center()

        pannel = wx.Panel(self, -1)
        #mybutton最好是成员变量,否则初始化完毕后,非成员变量的mybutton就被释放了
        self.mybutton = wx.Button(pannel, label=u'我是按钮', pos=(30, 30), size=(80, 26))
        self.txt = wx.StaticText(pannel, -1, u'', style=wx.ALIGN_RIGHT, pos=(30, 64), size=(200, 200))
        #你之前写的是self.testEvent(),这里不应该加括号,表示一个调用,另外,Bind用法也不对
        self.mybutton.Bind(wx.EVT_LEFT_DOWN, self.testEvent)
        self.Show()
    # 改函数接口
    def testEvent(self, event):
        wx.MessageBox(u"我被点击了!")
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号