gpt4 book ai didi

python - Tkinter 将条目框值存储为其他文件的值

转载 作者:太空宇宙 更新时间:2023-11-03 18:03:40 25 4
gpt4 key购买 nike

这是我的第一个Python个人项目。我想使用 Tkinter 创建一个窗口(GUARDIAN LOCATOR),要求用户在输入框中输入一个值(输入水手监护人)。程序的其余部分取决于用户在输入框中键入的内容,因为我将使用 if/else 语句对输入的水手监护人使用react。

我遇到的问题是将输入框中输入的内容存储为变量,以便在我的主文件中用于 if/else 语句。我可以获取要打印到提示窗口的值,但无法将其成功存储到全局变量中。

我的 Tkinter 窗口位于它自己的类中。

根据 stackoverflow 中的类似问题,我尝试了许多不同的方法来执行此操作,但每次都会收到错误。这是我的基本代码,但仍然产生错误。

带有 Tkinter 窗口的类文件

class GuardianLocator:

def __init__(self, master):
frame = Frame(master)
frame.grid()
master.title("GUARDIAN LOCATOR")

self.locator_label = Label(frame, text="Which Sailor Guardian are you looking for?", width=40, height=2)
self.locator_label.grid()

self.entry = Entry(frame)
self.entry.grid()

self.button1 = Button(frame, text="Search", command=self.guardian_name, pady=2)
self.button1.grid()

def guardian_name(self):
print(self.entry.get())

和我的主要工作文件

root = Tk()
locator = guardian_locator.GuardianLocator(root)

root.mainloop()

这是我的测试循环,看看它是否有效。

if locator.guardian_input() is "Sailor Moon":
print("hi")
else:
print("no")

最佳答案

不确定您的代码是如何组织的以及您的“测试循环”位于何处,但我假设它位于 root.mainloop() 之后。因此脚本可以如下所示:

from tkinter import *


class GuardianLocator:

def __init__(self, master):
self._name = ""
frame = Frame(master)
frame.grid()
master.title("GUARDIAN LOCATOR")

self.locator_label = Label(frame, text="Which Sailor Guardian are you looking for?", width=40, height=2)
self.locator_label.grid()

self.entry = Entry(frame)
self.entry.grid()

self.button1 = Button(frame, text="Search", command=self.guardian_name, pady=2)
self.button1.grid()

def guardian_name(self):
self._name = self.entry.get()
print(self.entry.get())


root = Tk()
locator = GuardianLocator(root)

root.mainloop()

# this will be executed after the root window is closed.
print("Name is", locator._name)

请注意构造函数中的self._name = ""。此实例变量可用于存储 GuardianLocator 窗口中提供的名称。

关于python - Tkinter 将条目框值存储为其他文件的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27263825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com