Python Tkinter:Ifstatement不工作

2024-10-02 00:25:09 发布

您现在位置:Python中文网/ 问答频道 /正文

from tkinter import *

def callbackX(button, win, buttonNR):

    print("Pressed button", buttonNR)
    player1.append(buttonNR)
    win.destroy()
    gameScreen()

def gameScreen():

    win = Tk()
    #f = Frame(win)
    if '1' in player1 == 'True':
        b1 = Button(win, text="X", command=lambda: callbackX(b1, win, '1'))
        b1.grid(row=0, column=0)
    if '2' in player1 == 'True':
        b2 = Button(win, text="X", command=lambda: callbackX(b2, win, '2'))
        b2.grid(row=0, column=1)
    if '3' in player1 == 'True':
        b3 = Button(win, text="X", command=lambda: callbackX(b3, win, '3'))
        b3.grid(row=0, column=2)
    if '4' in player1 == 'True':
        b4 = Button(win, text="X", command=lambda: callbackX(b4, win, '4'))
        b4.grid(row=1, column=0)
    if '5' in player1 == 'True':
        b5 = Button(win, text="X", command=lambda: callbackX(b5, win, '5'))
        b5.grid(row=1, column=1)
    if '6' in player1 == 'True':
        b6 = Button(win, text="X", command=lambda: callbackX(b6, win, '6'))
        b6.grid(row=1, column=2)
    if '7' in player1 == 'True':
        b7 = Button(win, text="X", command=lambda: callbackX(b7, win, '7'))
        b7.grid(row=2, column=0)
    if '8' in player1 == 'True':
        b8 = Button(win, text="X", command=lambda: callbackX(b8, win, '8'))
        b8.grid(row=2, column=1)
    if '9' in player1 == 'True':
        b9 = Button(win, text="X", command=lambda: callbackX(b9, win, '9'))
        b9.grid(row=2, column=2)


player1 = []; player2 = []

gameScreen()

程序似乎无法识别满足if语句条件。这是什么怪癖吗?如何解决这个问题?在

代码应该会为player1打开一个tic-tac-toe游戏屏幕,它会关闭并重新打开窗口,而不需要先前按下的按钮。在


Tags: lambdatextintrueifcolumnbuttonwin

热门问题