为什么我的python tkinter按钮无法访问

14ifxucb  于 2023-03-11  发布在  Python
关注(0)|答案(2)|浏览(152)

我正在尝试做我的计算机科学项目与tkinter,这是一个骰子游戏,我有3个用户界面窗口,第二个按钮,当你点击它,它会帮助你运行功能:“conti”,但我的VisualStudio说,我的按钮是不可访问的。这是我的代码

def GameWind():
    GW = tkinter.Tk()
    GW.geometry("1000x1000")
    GW.resizable(0,0)
    GW.title("In Game")
    GW.mainloop()
#Introduce window
def Introduce():
    Intro = tkinter.Tk()
    Intro.geometry("700x300")
    Intro.resizable(0,0)
    Intro.title("Introduce")
    ttk.Label(Intro,text ="...").pack()
    photo = tk.PhotoImage(file = "Sources Images\RULES.gif",master=Intro)
    ttk.Label(Intro,image = photo).pack() 
    def conti():
            GameWind
            Intro.quit
    GameB=tk.Button(Intro,text="Continue",command=conti,master=Intro).pack()
    Intro.mainloop()

但当我运行它时:

我试着在网上搜索了好几个小时,什么也没找到。

vdzxcuhz

vdzxcuhz1#

正如matswecja在她的评论中提到的,你没有使用GameB变量。同样.pack()方法返回None。要解决这个问题,只需删除GameB=

ctzwtxfj

ctzwtxfj2#

您使用的命名空间太多。为什么不尝试两个命名空间。

  • 在第23行TypeError: Button.__init__() got multiple values for argument 'master'中,删除master=Intro

重写脚本的代码段:

import tkinter
from tkinter import ttk

def GameWind():
    GW = tkinter.Tk()
    GW.geometry("1000x1000")
    GW.resizable(0,0)
    GW.title("In Game")
    GW.mainloop()
#Introduce window
def Introduce():
    Intro = tkinter.Tk()
    Intro.geometry("700x300")
    Intro.resizable(0,0)
    Intro.title("Introduce")
    ttk.Label(Intro,text ="...").pack()
    photo = tkinter.PhotoImage(file = "p1.png",master=Intro)
    ttk.Label(Intro,image = photo).pack() 
    def conti():
            GameWind
            Intro.quit
    GameB = tkinter.Button(Intro,text="Continue",command=conti)
    GameB.pack()
    Intro.mainloop()

if __name__=='__main__':
    Introduce()

截图:

相关问题