所以我正在用python创建密码管理器,但我不知道如何从Entry获得用户输入并将其用于if参数?
text1 = StringVar()
def but():
text1.get()
print(text1.get())
knapp2 = Button(root, command="but").pack()
entry1 = Entry(root, textvariable=text1).place(x=270, y=100)
答案 0 :(得分:0)
您也可以在Entry小部件上调用.get()函数以获取文本。
import tkinter
from tkinter import Tk, Button, Entry
mw = Tk()
entry = Entry(mw)
entry.pack()
def but():
text = entry.get()
print(text)
button.config(text='Button Clicked')
button = Button(mw, command=but, text='Test')
button.pack()
mw.mainloop()
此代码确实有效,但是随着较大的代码将变得复杂。您必须先定义函数,然后才能创建调用该函数的小部件。在上面的示例中,如果您在函数之前创建了按钮小部件,则将获得异常。您可以创建窗口小部件,然后创建函数,然后更改按钮的配置以在单击时调用该函数,但这仍然相当复杂,并且在大型程序中会造成混淆。
我建议将所有内容都放在一个类中。它使引用功能中的窗口小部件变得容易。
import tkinter
from tkinter import Tk, Button, Entry
class Main:
def __init__(self, master):
self.master = master
self.entry = Entry(self.master)
self.entry.pack()
self.button = Button(self.master, text='Test', command=self.But)
self.button.pack()
def But(self):
print(self.entry.get())
self.button.config(text='Button Clicked.')
mw = Tk()
main = Main(mw)
mw.mainloop()