【发布时间】:2014-02-22 20:34:24
【问题描述】:
在尝试制作电梯模拟器时,我遇到了一个问题。 有4部电梯,按楼层号应该变成红色。这适用于 1 部电梯中的 1 个“面板”,但不适用于每部电梯中的 1 个“面板”。 这是我的代码:
def floorChooserButtons( self, eleNum, floors, yStart, yEnd, xStart, xEnd):
self.Buttons1 = [i for i in range(41)]
self.Buttons2 = [i for i in range(41)]
self.Buttons3 = [i for i in range(41)]
self.Buttons4 = [i for i in range(41)]
if(eleNum is 1):
xPos = xStart
yPos = yStart
for floor in floors:
if(yPos == yEnd):
xPos = xPos + 1
yPos = yStart
if(xPos == xEnd-1):
yPos = yStart+2
self.Buttons1[floor] = tk.Button(self, width=3, text=floor,
command = lambda f=floor: self.chooser(f, eleNum))
self.Buttons1[floor].grid(row=xPos, column =yPos)
yPos = yPos + 1
elif(eleNum is 2):
xPos = xStart
yPos = yStart
for floor in floors:
if(yPos == yEnd):
xPos = xPos + 1
yPos = yStart
if(xPos == xEnd-1):
yPos = yStart+2
self.Buttons2[floor] = tk.Button(self, width=3, text=floor,
command = lambda f=floor: self.chooser(f, eleNum))
self.Buttons2[floor].grid(row=xPos, column =yPos)
yPos = yPos + 1
elif(eleNum is 3):
xPos = xStart
yPos = yStart
for floor in floors:
if(yPos == yEnd):
xPos = xPos + 1
yPos = yStart
if(xPos == xEnd-1):
yPos = yStart+2
self.Buttons3[floor] = tk.Button(self, width=3, text=floor,
command = lambda f=floor: self.chooser(f, eleNum))
self.Buttons3[floor].grid(row=xPos, column =yPos)
yPos = yPos + 1
elif(eleNum is 4):
xPos = xStart
yPos = yStart
for floor in floors:
if(yPos == yEnd):
xPos = xPos + 1
yPos = yStart
if(xPos == xEnd-1):
yPos = yStart+2
self.Buttons4[floor] = tk.Button(self, width=3, text=floor,
command = lambda f=floor: self.chooser(f, eleNum))
self.Buttons4[floor].grid(row=xPos, column =yPos)
yPos = yPos + 1
self.QUIT = tk.Button(self, text="QUIT", fg="red",
command=root.destroy).grid(row = xPos, column = yPos)
def chooser(self, index, eleNum):
print("Number", index, "pressed in elevator", eleNum)
if eleNum is 1:
self.Buttons1[index].configure(bg="red")
if eleNum is 2:
self.Buttons2[index].configure(bg="red")
if eleNum is 3:
self.Buttons3[index].configure(bg="red")
if eleNum is 4:
self.Buttons4[index].configure(bg="red")
eleNum 为电梯编号,1-4 yStart、yEnd、xStart、xEnd都用于布局。
任何帮助都会令人震惊。 谢谢
【问题讨论】:
-
这是错误的代码。
-
@hd1 这只是由于stackoverflow,我试图缩进它并且它不允许我这样做。它在我的代码中正确缩进。
-
@MartynRushton:你是什么意思它不允许你?当然会的。用空格替换所有选项卡,插入代码,突出显示它,然后单击
{}按钮。如果您希望人们努力回答您的问题,那么您应该努力提出问题。 -
好吧,原来我搞砸了……现在完成了=D