欢迎光临散文网 会员登陆 & 注册

python tkinter练习(做个画布,但是看不出什么)

2020-03-07 14:28 作者:一心想当网红的李老师  | 我要投稿

本来想做个小游戏的。但是不太熟悉tkinter怎么操控图形界面。

所以拿了别人的程序看了一下。

# -*- coding: utf-8 -*-

"""

Created on Sat Mar  7 14:09:18 2020


@author: liyan

"""



from tkinter import *

from tkinter.messagebox import *


class Chess(object):

  

    def bf_start(self):

        self.set_btn_state("start")

        self.is_start = True

        self.is_black = True

        self.matrix = [[0 for y in range(self.column)] for x in range(self.row)]

        self.draw_board()

        self.l_info.config(text="黑方下棋")

  

 # 重来跟开始的效果一样

    def bf_restart(self):

        self.bf_start()



         

    def __init__(self):

        #############

        #   param   #

        #######################################

        self.row, self.column = 15, 15

        self.mesh = 25

        self.ratio = 0.9

        self.board_color = "#CDBA96"

        self.header_bg = "#CDC0B0"

        self.btn_font = ("黑体", 12, "bold")

        self.step = self.mesh / 2

        self.chess_r = self.step * self.ratio

        self.point_r = self.step * 0.2

        self.matrix = [[0 for y in range(self.column)] for x in range(self.row)]

        self.is_start = False

        self.is_black = True

        self.last_p = None

 

        ###########

        #   GUI   #

        #######################################

        self.root = Tk()

        self.root.title("Gobang By Young")

        self.root.resizable(width=False, height=False)

 

        self.f_header = Frame(self.root, highlightthickness=0, bg=self.header_bg)  ###感觉这里把人家的窗口分了一条出来。但是没有具体定位啊

        self.f_header.pack(fill=BOTH, ipadx=10)

        self.b_start = Button(self.f_header, text="开始", command=self.bf_start, font=self.btn_font)

        self.b_restart = Button(self.f_header, text="重来", command=self.bf_restart, state=DISABLED, font=self.btn_font)

        

        self.b_start.pack(side=LEFT, padx=20)

        self.b_restart.pack(side=LEFT)

       

 

        self.c_chess = Canvas(self.root, bg=self.board_color, width=(self.column + 1) * self.mesh,

                              height=(self.row + 1) * self.mesh, highlightthickness=0)


        self.c_chess.pack()

 

        self.root.mainloop()





if __name__ == '__main__':

    Chess()


python tkinter练习(做个画布,但是看不出什么)的评论 (共 条)

分享到微博请遵守国家法律