1. 程式人生 > >wxpython開發一個小遊戲(一)

wxpython開發一個小遊戲(一)

添加 title RR .text all SM add author tdi

# _*_ 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()

先這樣,晚了回頭再補充寫個小遊戲

wxpython開發一個小遊戲(一)