zoukankan      html  css  js  c++  java
  • wxpython开发一个小游戏(一)

    # _*_ coding: utf-8 _*_
    __author__ = 'pythonwu'
    __date__ = "2018/5/13 21:33"

    import wx
    import os

    class MainWindows(wx.Frame):
    def __init__(self,parent,id,title):
    wx.Frame.__init__(self,parent,title=title,size = (200,160)) #重写__init__方法
    self.control = wx.TextCtrl(self,style = wx.TE_MULTILINE) #多行编辑
    self.CreateStatusBar() #创建位于窗口底部的状态栏

    #设置菜单
    filemenu = wx.Menu()
    menuAbout = filemenu.Append(wx.ID_ABOUT,u'关于',u'关于程序的信息') #wx窗口小部件(wxWidgets)提供的标准ID
    filemenu.AppendSeparator() #分割两个menu
    menuExit = filemenu.Append(wx.ID_EXIT,u'退出',u'终止应用程序')
    filemenu.AppendSeparator()
    menuOpen = filemenu.Append(wx.ID_OPEN,u'打开',u'打开文件')

    #创建菜单栏
    menuBar = wx.MenuBar()
    menuBar.Append(filemenu, u"文件")
    self.SetMenuBar(menuBar) #在frame中添加菜单栏

    #设置events
    self.Bind(wx.EVT_MENU, self.OnAbout, menuAbout)
    self.Bind(wx.EVT_MENU, self.OnExit, menuExit)
    self.Bind(wx.EVT_MENU,self.OnOPen,menuOpen)

    # 设置sizers
    self.sizer2 = wx.BoxSizer(wx.HORIZONTAL) #创建水平分布的可见元素
    self.buttons = []
    for i in range(0, 6):
    self.buttons.append(wx.Button(self, -1, "Button &" + str(i)))
    self.sizer2.Add(self.buttons[i], 1, wx.SHAPED)

    self.sizer = wx.BoxSizer(wx.VERTICAL) #创建垂直分布的可见元素
    self.sizer.Add(self.control, 1, wx.EXPAND)
    self.sizer.Add(self.sizer2, 0, wx.GROW)

    # 激活sizer
    self.SetSizer(self.sizer)
    self.SetAutoLayout(True)
    self.sizer.Fit(self)
    self.Show(True)


    self.Show(True)
    def OnAbout(self, e):
    # 创建一个带"OK"按钮的对话框。wx.OK是wxWidgets提供的标准ID,当使用wx.Cancel属性时候出现cancel 按钮
    dlg = wx.MessageDialog(self, "一个简单的文本编辑器.",
    "关于文本编辑器", wx.CANCEL) # 语法是(self, 内容, 标题, ID)
    dlg.ShowModal() # 显示对话框
    dlg.Destroy() # 当结束之后关闭对话框

    def OnExit(self, e):
    self.Close(True) # 关闭整个frame

    def OnOPen(self,e):
    self.dirname = '' #当前目录下
    dlg = wx.FileDialog(self,u"选择文件",self.dirname,"","*.*",wx.FD_OPEN) #单个文件
    if dlg.ShowModal() == wx.ID_OK:
    self.filename = dlg.GetFilename()
    self.dirname = dlg.GetDirectory()
    f = open(os.path.join(self.dirname,self.filename),'r',encoding='utf-8')
    self.control.SetValue(f.read()) #设置编码utf-8
    f.close()
    dlg.Destroy()

    app = wx.App(False) #app = wx.App(False) #创建1个APP,禁用stdout/stderr重定向
    frame = MainWindows(None,-1,'small editor') #None表示这是一个顶层的windows
    app.MainLoop()

    先这样,晚了回头再补充写个小游戏
  • 相关阅读:
    五一拆装机学习
    msgbox函数和inputbox函数应该注意的几点
    西游记(3)
    刚刚开通csdn
    c# 快捷键
    JavaBean的属性(Simple,Indexed,Bound,Constrained)【收藏】
    SQL查询语句使用【收藏】
    .NET 对实现IPersistStream接口的对象进行保存和读取
    创建控件数组
    常用数据库JDBC连接写法【收藏】
  • 原文地址:https://www.cnblogs.com/wudeng/p/9034140.html
Copyright © 2011-2022 走看看