我现在正在做一个记忆/匹配游戏,它包括在一个按钮矩阵上找到备用卡。。。在
所以问题是,当你按下一个按钮时,这个按钮必须要有一个图像,并使自己处于禁用状态,直到另一个按钮被按下,如果它是一个备用卡,它必须保持这样。在
我的问题来了,当点击按钮,并试图给它一个形象。由于某种原因,当我给它一个图像时,按钮会自动收缩,然后再也不会发生任何事情。我真的不知道为什么会这样,因为如果我不给它一个图像,只要改变它的颜色,它就行了,而且根本没有收缩。在
代码如下:
from tkinter import *
import os
import sys
def CargarImagenlvl1(nombre): #Define la funcion "global" que carga las imagenes necesarias
ruta = os.path.join('Imagenes lvl1',nombre)
imagen = PhotoImage(file=ruta)
return imagen
#--------------------------------------------Imagenes----------------------------------------------------
def VentanaPlay():
matriz = [0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0]
VentanaPlay= Tk()
VentanaPlay.title("Focus Now!")
VentanaPlay.resizable(width=NO, height=NO)
VentanaPlay.geometry("800x600")
CanvPlay= Canvas(VentanaPlay, width=800, height=600, bg="white")
CanvPlay.config(cursor="dotbox")
CanvPlay.place(x=-1,y=-1)
CanvPlay1= Canvas(CanvPlay)
CanvPlay1.config(bg="white")
CanvPlay1.place(x=1,y=1)
ABOUT=CargarImagenlvl1("About.gif")
def Matriz():
global Bot
Bot=[] #Botones ([Numero de boton])
ind=0 #Indicador para crear la cantidad de botones
c1,c2=0,0 #Columnas y filas
while ind < 49:
Bot.append(Button(CanvPlay1,width=10,height=5,bg="#309090"))
Bot[ind].grid(row=c2,column=c1)
ind+=1
if c1==6: c1,c2=0,c2+5
else: c1+=1
Bot[0].config(command=lambda: dele(0)), Bot[1].config(command=lambda: dele(1))
Bot[2].config(command=lambda: dele(2)), Bot[3].config(command=lambda: dele(3))
Bot[4].config(command=lambda: dele(4)), Bot[5].config(command=lambda: dele(5))
Bot[6].config(command=lambda: dele(6)), Bot[7].config(command=lambda: dele(7))
Bot[8].config(command=lambda: dele(8)), Bot[9].config(command=lambda: dele(9))
Bot[10].config(command=lambda: dele(10)), Bot[11].config(command=lambda: dele(11))
Bot[12].config(command=lambda: dele(12)), Bot[13].config(command=lambda: dele(13))
Bot[14].config(command=lambda: dele(14)), Bot[15].config(command=lambda: dele(15))
Bot[16].config(command=lambda: dele(16)), Bot[17].config(command=lambda: dele(17))
Bot[18].config(command=lambda: dele(18)), Bot[19].config(command=lambda: dele(19))
Bot[20].config(command=lambda: dele(20)), Bot[21].config(command=lambda: dele(21))
Bot[22].config(command=lambda: dele(22)), Bot[23].config(command=lambda: dele(23))
Bot[24].config(command=lambda: dele(24)), Bot[25].config(command=lambda: dele(25))
Bot[26].config(command=lambda: dele(26)), Bot[27].config(command=lambda: dele(27))
Bot[28].config(command=lambda: dele(28)), Bot[29].config(command=lambda: dele(29))
Bot[30].config(command=lambda: dele(30)), Bot[31].config(command=lambda: dele(31))
Bot[32].config(command=lambda: dele(32)), Bot[33].config(command=lambda: dele(33))
Bot[34].config(command=lambda: dele(34)), Bot[35].config(command=lambda: dele(35))
Bot[36].config(command=lambda: dele(36)), Bot[37].config(command=lambda: dele(37))
Bot[38].config(command=lambda: dele(38)), Bot[39].config(command=lambda: dele(39))
Bot[40].config(command=lambda: dele(40)), Bot[41].config(command=lambda: dele(41))
Bot[42].config(command=lambda: dele(42)), Bot[43].config(command=lambda: dele(43))
Bot[44].config(command=lambda: dele(44)), Bot[45].config(command=lambda: dele(45))
Bot[46].config(command=lambda: dele(46)), Bot[47].config(command=lambda: dele(47))
Bot[48].config(command=lambda: dele(48))
def dele(coordenada):
if matriz[coordenada]==0:
matriz[coordenada]=1
Bot[coordenada].config(state=DISABLED, height=5, width=10,image=ABOUT) #Here I assign the image, wich is the part that makes the buttons shrink.
Matriz()
VentanaPlay.mainloop()
VentanaPlay()
截图如下:
http://i.stack.imgur.com/zrCLB.png
按钮在缩小,虽然我认为图像显示的是一个非常小的尺寸,顺便说一句,我已经确定了图像的分辨率与正方形完全相同,我甚至试着把图像放得更大一些,但还是一样的。在
希望你能在这里帮我!谢谢! 原谅我糟糕的英语技能。在
当将图像添加到tkinter按钮上时,每个顶部有图像的按钮将发生变化,以便按钮的宽度和高度将以像素表示,而不是按钮部件默认的没有顶部图像的单位。在
你写道:
Bot[coordenada].config(state=DISABLED, height=5, width=10,image=ABOUT)
由于添加了图像,因此高度和宽度现在以像素为单位。但所有其他按钮都保持较大尺寸,因为它们顶部没有图像。在
希望这有帮助!这里有一个链接。。。 http://effbot.org/tkinterbook/button.htm
相关问题 更多 >
编程相关推荐