python-3.x tkinter focus_set()未设置焦点[重复]

bf1o4zei  于 2023-07-01  发布在  Python
关注(0)|答案(1)|浏览(106)

此问题已在此处有答案

Why do I get "AttributeError: NoneType object has no attribute" using Tkinter? Where did the None value come from?(4个答案)
3天前关闭。
我试图将焦点设置在一个入口窗口上,但每次都会引发错误。
AttributeError: 'NoneType' object has no attribute 'focus_set'
我查了一些这方面的例子,没有一个建议奏效。我假设我有一个错误,从命名的东西在我的代码中,如果功能只是平面出不工作。
这是我的代码…

import tkinter as tk
from tkinter import ttk

def greet():
    print(f"Hello, {user_name.get() or 'World'}!")

root = tk.Tk()

user_name = tk.StringVar()

name_label = ttk.Label(root, text="Name: ").pack(side="left", padx=(0, 10))
name_entry = ttk.Entry(root, width=15, textvariable=user_name).pack(side="left")

name_entry.focus_set()

greet_button = ttk.Button(root, text="greet", command=greet).pack(side="left")

quit_button = ttk.Button(root, text="quit", command=root.destroy).pack(side="right")

root.mainloop()

我通常用JavaScript开发我们的应用程序,所以Python对我来说有点陌生,我只是想学习一些新的东西。谢谢!

dz6r00yl

dz6r00yl1#

我找到了答案,但我不知道它为什么有效。如果我把pack放到另一条线上就能用了。。

name_label = ttk.Label(root, text="Name: ").pack(side="left", padx=(0, 10))
name_entry = ttk.Entry(root, width=15, textvariable=user_name)
name_entry.pack(side="left")
name_entry.focus()

相关问题