我正在開發一個 Tkinter 應用程式。在 StringVar() 部分,它得到一個錯誤:
AttributeError: 'StringVar' 物件沒有屬性 'tk'。您的意思是:'_tk'?
我已經匯入了模塊: import tkinter as tk
這是 StringVar() 部分:(第 2 行錯誤)
games = ["Select Game", "Number Memory", "Reaction", "Game"]
var = tk.StringVar()
var.set(games[0])
game_dropdown = tk.OptionMenu(var, *games)
有關更多資訊,這里是完整的代碼和錯誤:
import tkinter as tk
root = tk.Tk()
root.title("Game Launcher")
root.iconbitmap("app.ico")
root.geometry("800x400")
root.resizable(False, False)
title = tk.Label(text="Game Laucher", font=("Arial", 24))
title.pack()
title.place(x=10, y=10)
games = ["Select Game", "Number Memory", "Reaction", "Game"]
var = tk.StringVar()
var.set(games[0])
game_dropdown = tk.OptionMenu(var, *games)
game_dropdown.pack()
game_dropdown.place(x=10, y=70)
root.mainloop()
PS D:\Test\Python\Game> py launcher.pyw
Traceback (most recent call last):
File "D:\Test\Python\Game\launcher.pyw", line 13, in <module>
game_dropdown = tk.OptionMenu(var, *games)
File "C:\Users\???\AppData\Local\Programs\Python\Python310\lib\tkinter\__init__.py", line 3991, in __init__
Widget.__init__(self, master, "menubutton", kw)
File "C:\Users\???\AppData\Local\Programs\Python\Python310\lib\tkinter\__init__.py", line 2595, in __init__
BaseWidget._setup(self, master, cnf)
File "C:\Users\???\AppData\Local\Programs\Python\Python310\lib\tkinter\__init__.py", line 2564, in _setup
self.tk = master.tk
AttributeError: 'StringVar' object has no attribute 'tk'. Did you mean: '_tk'?
uj5u.com熱心網友回復:
該錯誤意味著該StringVar物件不是一個Tk實體。
錯誤的部分在行中:
game_dropdown = tk.OptionMenu(var, *games)
第一個屬性應該是parent物件的(應該是一個Tk實體),而不是StringVar。
您可以將該行更改為:
game_dropdown = tk.OptionMenu(root, var, *games)
uj5u.com熱心網友回復:
感謝John Gordon,我找到了答案:
的第一個引數
OptionMenu()應該是父小部件物件
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/361390.html
