我最近才开始用Python进行冒险,所以请别对我说:D
我已经用tkinter的gui开发了我的第二个程序几天了,我好像碰到了一堵墙。在
这是一款通过制作二维列表来创建二维地图的游戏。在
列表中的每个元素都创建为一个Button tkinter对象实例,其中有一个tile_basic_off图像。到现在为止,一直都还不错。在
我是否应该尝试将这些按钮绑定到2个函数上,以便鼠标悬停/鼠标离开,事情会向南移动。。。在
它的工作原理应该是:
鼠标悬停->;将图像更改为平铺基本\u
鼠标离开->;更改平铺“基本”
但是,一旦下面的代码运行(有一个函数用.grid()方法绘制它),一切都是一样的,在鼠标悬停或鼠标离开时,平铺不会改变图像。在
下面是一段关于问题的重要代码。
(请注意,redMagenta是一个包含RGB的变量,而不是一个输入错误)from tkinter import * #Python 3.4 here
def createMap (): #creates rows x columns 2D list - a map
global rowsEntryVar, columnsEntryVar, mapList
mapList = []
for row in range(rowsEntryVar):
tempList = []
for column in range(columnsEntryVar):
tempList.append(Button(root, bd=0, bg=redMagenta, activebackground=redMagenta))
mapList.append(tempList)
setTilesProperties()
tileBasicOffImage = PhotoImage(file="Resources/Tile/Tile_basic_off.png")
tileBasicOnImage = PhotoImage(file="Resources/Tile/Tile_basic_on.png")
def turnTileOn (row, column): #changes tile image to On
global mapList
mapList[row][column].configure(image=tileBasicOnImage)
mapList[row][column].image = tileBasicOnImage
def turnTileOff (row, column): #changes tile image to Off
global mapList
mapList[row][column].configure(image=tileBasicOffImage)
mapList[row][column].image = tileBasicOffImage
def setTilesProperties (): #sets basic properties that apply to all tiles
global mapList, tileBasicOffImage
for row in range(len(mapList)):
for column in range(len(mapList[row])):
mapList[row][column].configure(image=tileBasicOffImage)
mapList[row][column].bind("", turnTileOn(row, column))
mapList[row][column].bind("", turnTileOff(row, column))
我的代码怎么了?在
谢谢你的帮助,也谢谢你没有告诉我。;]