我试图改变网格的列重量而不能这样做。 我试着制作一个tic tac toe游戏,我不能设置框架。
我想为屏幕上的每个块制作9个帧,每个将被点击的帧将设置不同的形状,你知道游戏;)
我尝试使用grid_columnconfigure(0,weight=1)
更改列权重,但仍无效。
非常感谢任何帮助,谢谢。
from tkinter import *
from tkinter import messagebox
def intro():
global intro
intro= Tk()
intro.geometry("300x250+710+290")
canvas = Canvas(intro, width=300,height=250)
canvas.place(x=0,y=0)
filename = PhotoImage(file="rsz_2000px-tic_tac_toesvg.png")
canvas.create_image(245,210, image=filename)
titlename= PhotoImage(file="rsz_1coollogo_com-141061778_1.png")
canvas.create_image(150,25,image=titlename)
playb= Button(canvas,text="PLAY",command=game)
exitb= Button(canvas,text="QUIT",command=quit)
infolabel= Label(canvas,text="©moti de gever made this",fg="RED")
playb.place(relx=0.5,rely=0.5,anchor=CENTER)
exitb.place(relx=0.5,rely=0.61,anchor=CENTER)
infolabel.place(relx=0.5,rely=0.95,anchor=CENTER)
intro.mainloop()
def quit():
if messagebox.askokcancel("exit?","are you sure you want to exit?"):
intro.destroy()
def game():
intro.destroy()
game=Tk()
game.geometry("300x250+710+290")
canvas= Canvas(game, width=300,height=250)
canvas.place(x=0,y=0)
game.grid_columnconfigure(0,weight=1)
canvas.create_line(105,0,105,250,width=5)
canvas.create_line(210, 0, 210, 250, width=5)
canvas.create_line(0, 85, 300, 85, width=5)
canvas.create_line(0, 170, 300, 170, width=5)
frameA= Frame(game,height=83,width=103,bg="BLUE")
frameA.grid(row=0,column=0)
#frameA.bind("<Button-1>",test)
frameB = Frame(game, height=83, width=103,bg="RED")
frameB.grid(row=0, column=1)
frameB.bind("<Button-1>", test)
def test(event):
print("working")
intro()
答案 0 :(得分:0)
game.grid_columnconfigure(0,weight=1)
行工作,因为它使game
网格中的第0列(其中包含frameA
)按比例调整大小({ {1}})其父级weight=1
。
现在game
没有按比例调整大小,但是允许这样做,它会获得额外的空间,它只是不使用。尝试设置其frameA
选项:
sticky
这样,它既可以水平调整水平(frameA.grid(row=0,column=0, sticky='nsew')
),也可以使用它所允许的内容,最多可以使用所有方面({{1} })。