4.Python画一个五子棋棋盘

2020-07-30 16:52:53 浏览数 (3)

今天我们通过wx.PaintDC在窗体上画出一个五子棋棋盘。要想在wxPython创建的窗体对象上通过wx.PaintDC画图,需要在该窗体上绑定一个画图事件wx.EVT_PAINT,然后在事件处理函数里画出我们需要的线条。 我们的棋盘是画在panel上的,所以画图事件也是绑定在panel上,画图的容器mydc也是建立在panel上。我们通过 self.unit = 30、self.dotnum = 15来控制窗体及棋盘的大小,unit为格子边长,dotnum为棋盘每条边的交点个数。

代码语言:javascript复制
#画一个五子棋棋盘
import wx
class myFrame(wx.Frame):
    def __init__(self):
        self.unit = 30
        self.dotnum = 15
        super().__init__
            (parent=None,pos=[100,100],
             size=[self.unit*self.dotnum
                    self.unit 20,
                   self.unit*self.dotnum
                    self.unit 30 20],
             title="商贾三国")
        self.SetIcon(wx.Icon("WeatherBundle.ico"))
        self.panel = wx.Panel(self)
        self.panel.SetBackgroundColour((220, 210, 0))
        self.panel.Bind(wx.EVT_PAINT,self.draw)
        self.Show()
    def draw(self,event):
        mydc=wx.PaintDC(self.panel)
        unit=self.unit
        dotnum=self.dotnum
        x=unit
        y=unit
        for i in range(1,dotnum 1):
            mydc.DrawLine(x,y,x,unit*dotnum)
            x=x unit
        x=unit
        for i in range(1,dotnum 1):
            mydc.DrawLine(x, y, unit*dotnum, y)
            y=y unit
myapp=wx.App()
myframe=myFrame()
myapp.MainLoop()

qipan.png

0 人点赞