欢迎来到wxPython(1)--附例详解

#!/usr/bin/python

#-*-<coding=UTF-8>-*-

import wx



class MyFrame(wx.Frame):

    def __init__(self):

        """

        定义__init__方法,相当于其它面向对象语言的构造函数,在创建类的对象时

        会自动调用.

        """

        #调用父类的初始化函数,为什么要这么做?当然,同样的,父类的初始化也会被自动调用.

        wx.Frame.__init__(self, None,-1,"MyFrame",size=(300,300))

        #创建面板控件

        panel = wx.Panel(self,-1)

        #绑定事件,类型为wx.MOTION,主要用来侦测鼠标移动.

        panel.Bind(wx.EVT_MOTION,self.OnMove)

        #创建静态文件,用来在面板上显示信息

        wx.StaticText(panel,-1,"Pos:",pos=(10,12))

        """

        创建文本输入框,同时将此对象赋给self.posCtrl. 之前一直不明白,为什么要赋值给self.posCtrl.

        现在看起来,是因为在__init__方法中定义的变量,可以在整个类方法中引用,如下面的OnMove()方法中,

        不知道理解对不对.

        """

        self.posCtrl = wx.TextCtrl(panel,-1,"",pos=(40,10))



    def OnMove(self,event):

        """

        self.OnMove是由Bind函数调用的. 但是这个地方一直感觉很突兀.

        event是如何传递及工作的,没有太明白.

        """

        pos = event.GetPosition()

        #在文本框中显示当前鼠标的位置

        self.posCtrl.SetValue("%s,%s" %(pos.x,pos.y))



if __name__ == '__main__':

    app = wx.PySimpleApp()

    frame = MyFrame()

    frame.Show(True)

    app.MainLoop()

你可能感兴趣的:(wxPython)