python 模块调用练习(II)
继续在练习1的基础上加强。
看起来程序还是有问题。因为是照着书本操作,所以感觉有点问题。程序没有报错,但是感觉好像有些内容没有显示。
from tkinter import *
import model
cell_size=5
def setup():
global root,grid_view,cell_size,start_btn,clear_btn,choice
root=Tk()
root.title('game screen')
grid_view=Canvas(root,width=model.width*cell_size,
height=model.height*cell_size,
borderwidth=0,
bg='white')
start_btn=Button(root,text="start",width=12)
clear_btn=Button(root,text="clear",width=12)
choice=StringVar(root)
choice.set('choose a pattern')
option=OptionMenu(root,choice,"'choose a pattern","grider","grider gun","random")
option.config(width=25)
grid_view.grid(row=0,columnspan=3,padx=20,pady=20)
start_btn.grid(row=1,column=0,sticky=W,padx=20,pady=20)
option.grid(row=1,column=1,padx=20)
clear_btn.grid(row=1,column=2,sticky=E,padx=20,pady=20)
####此处学习了tkinter界面布局的方法,还是很有用的。sticky是字体对其方式,W=west, E=east,很神奇的方式,不过有书有介绍,可以看懂。画布可以分行列,然后进行排布。这个和wxpython设置大小和位置的方式有所不同。####
def update():
global grid_view
grid_view.delete(ALL)
model.next_gen()
for i in range(0,model.height):
for j in range (0,model.width):
if model.grid_model[i][j]==1:
draw_cell(i,j,'black')
####调用其他程序的方式
def draw_cell(row, col, color):
global grid_view,cell_size
if color=='black':
outline='grid'
else:
outline='white'
grid_view.create_rectangle(row*cell_size,
col*cell_size,
row*cell_size+cell_size,
col*cell_size+cell_size,
fill=color,outline=outline)
if __name__=='__main__':
setup()
update()
mainloop()
###主程序运行顺序