如何在if参数中的tkinter中使用Entry函数?

时间:2019-10-01 15:58:03

标签: python tkinter

所以我正在用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)

1 个答案:

答案 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()