编写一个空窗体程序

    1. import wx
    2. #导入wxPython包
    3. class MainFrame(wx.Frame):
    4. #定义MainFrame类(代表程序的主窗体),它是wx.Frame类的子类
    5. def __init__(self):
    6. super().__init__(parent=None,id=-1,title="程序主窗体",size=(400,300))
    7. #调用wx.Frame类的构造方法来创建程序主窗体
    8. if __name__ == "__main__" :
    9. app=wx.App()
    10. #定义一个wx.App类的对象app
    11. mainFrame=MainFrame()
    12. mainFrame.Show()
    13. app.MainLoop()

    image.png
    在窗体中添加控件,构造窗体界面
    wxPython的例子 - 图2

    1. import wx
    2. #导入wxPython包
    3. class MainFrame(wx.Frame):
    4. #定义MainFrame类(代表程序的主窗体),它是wx.Frame类的子类
    5. def __init__(self):
    6. #主窗体的构造方法
    7. super().__init__(parent=None,id=-1,title="程序主窗体",size=(400,300))
    8. #调用wx.Frame类的构造方法来创建程序主窗体
    9. self.panel=wx.Panel(parent=self)
    10. #定义了panel对象,他是个wx.Panel类对象,代表一个面板
    11. self.title=wx.StaticText(parent=self.panel,label="请输入用户名和密码",pos=(140,20))
    12. #定义一个wx.StaticText控件类对象,这是一个文本标签类
    13. self.userLabel=wx.StaticText(self.panel,label="用户名:",pos=(50,50))
    14. self.userText=wx.TextCtrl(self.panel,pos=(100,50),size=(235,25),style=wx.TE_LEFT)
    15. #定义一个wx.TextCtrl控件对象,这是一个文本输入框,其中,pos代表位置,size代表大小,style代表是文本框的风格
    16. self.passLabel=wx.StaticText(self.panel,label="密 码:",pos=(50,90))
    17. self.passText=wx.TextCtrl(self.panel,pos=(100,90),size=(235,25),style=wx.TE_PASSWORD)
    18. self.btnOK=wx.Button(self.panel,label="确 定",pos=(105,130))
    19. #定义了按钮类wx.Button的对象
    20. self.btnCancel=wx.Button(self.panel,label="取 消",pos=(195,130))
    21. if __name__ == "__main__" :
    22. app=wx.App()
    23. #定义一个wx.App类的对象app
    24. mainFrame=MainFrame()
    25. mainFrame.Show()
    26. app.MainLoop()

    image.png
    编写按钮点击事件处理程序

    1. import wx
    2. #导入wxPython包
    3. class MainFrame(wx.Frame):
    4. #定义MainFrame类(代表程序的主窗体),它是wx.Frame类的子类
    5. def __init__(self):
    6. #主窗体的构造方法
    7. super().__init__(parent=None,id=-1,title="程序主窗体",size=(400,300))
    8. #调用wx.Frame类的构造方法来创建程序主窗体
    9. self.panel=wx.Panel(parent=self)
    10. #定义了panel对象,他是个wx.Panel类对象,代表一个面板
    11. self.title=wx.StaticText(parent=self.panel,label="请输入用户名和密码",pos=(140,20))
    12. #定义一个wx.StaticText控件类对象,这是一个文本标签类
    13. self.userLabel=wx.StaticText(self.panel,label="用户名:",pos=(50,50))
    14. self.userText=wx.TextCtrl(self.panel,pos=(100,50),size=(235,25),style=wx.TE_LEFT)
    15. #定义一个wx.TextCtrl控件对象,这是一个文本输入框,其中,pos代表位置,size代表大小,style代表是文本框的风格
    16. self.passLabel=wx.StaticText(self.panel,label="密 码:",pos=(50,90))
    17. self.passText=wx.TextCtrl(self.panel,pos=(100,90),size=(235,25),style=wx.TE_PASSWORD)
    18. self.btnOK=wx.Button(self.panel,label="确 定",pos=(105,130))
    19. #定义了按钮类wx.Button的对象
    20. self.btnCancel=wx.Button(self.panel,label="取 消",pos=(195,130))
    21. self.Bind(wx.EVT_BUTTON,self.OnClickOK,self.btnOK)
    22. #绑定btnOK的按钮点击事件的事件事件处理方法是OnClickOK
    23. self.Bind(wx.EVT_BUTTON,self.OnClickCancel,self.btnCancel)
    24. def OnClickOK(self,event):
    25. #定义MainFrame类的方法OnClickOK,用来进行btnOk(“确定”)被点击之后事件处理
    26. user="Tom"
    27. passwd="123456"
    28. #这是要验证的用户名和密码
    29. userName=self.userText.GetValue()
    30. #从userText中取出输入的用户名,使用TextCtrl对象的GetValue()方法取出输入的内容
    31. userPass=self.passText.GetValue()
    32. #从passText中取出输入的密码
    33. message = ""
    34. if userName == "" or userPass == "":
    35. message = "用户名或密码不能为空"
    36. elif userName == user and userPass == passwd :
    37. message = "登录成功"
    38. else:
    39. message = "用户名或者密码不匹配"
    40. wx.MessageBox(message,"登录提示")
    41. #创建一个MessageBox对象,显示提示信息
    42. def OnClickCancel(self,event):
    43. #OnClickCancel定义Cancel按钮点击后的事件处理程序
    44. self.userText.SetValue("")
    45. #将userText文本框清空
    46. self.passText.SetValue("")
    47. if __name__ == "__main__" :
    48. app=wx.App()
    49. #定义一个wx.App类的对象app
    50. mainFrame=MainFrame()
    51. mainFrame.Show()
    52. app.MainLoop()
    53. #启动app的事件循环,等待捕获用户在GUI界面上的操作(即控件事件),然后进入事件响应程序,执行事件响应程序
    54. #执行完成以后,回到事件循环。直至捕获到退出事件发生,才结束应用程序。
    1. import wx
    2. class MyFrame(wx.Frame):
    3. def __init__(self):
    4. super().__init__(parent=None,id=-1,title="测试",size=(300,300))
    5. self.panel=wx.Panel(parent=self)
    6. self.btn=wx.Button(parent=self.panel,label="请点击",size=(100,25),pos=(100,100))
    7. self.Bind(wx.EVT_BUTTON,self.OnClick,self.btn)
    8. def OnClick(self,event):
    9. wx.MessageBox("按钮被点击!","提示")
    10. if __name__=="__main__":
    11. app=wx.App()
    12. myFrame=MyFrame()
    13. myFrame.Show()
    14. app.MainLoop()

    image.png