我第一次制作的tkinter GUI python简单应用程序,修复错误

时间:2019-04-12 13:35:33

标签: python tkinter

这是我第一个使用python的tkinter GUI应用程序,出现错误。所以请帮忙。

请尽可能不重命名变量。 我使用了很多资源,因此可能很难理解一些代码。

class app (Frame):
    root=Tk()

    def __init__(self):
        main_win = tk.Frame.__init__(self)
        self.master.title("encryption and decryption app")
        main_win.txt_box = Text(Tk(), hieght=2, width=10)
        main_win.txt_box.pack()
        main_win.passw_box = Text(root, hieght=2, width=10)
        main_win.passw_box.pack()

        def encrypt(self):
            data = self.txt_box.get("1.0", END)
            password = self.passw_box.get("1.0", END)
            encrypted_text = ""
            for i in range(len(data)):
                new = chr(abs(ord(password[(i % len(password))]) + ord(data[i])))
                encrypted_text = encrypted_text + new
            tkinter.messagebox.showinfo("encrypted text in utf-8",encrypted_text)

        def decrypt (self):
            data = self.txt_box.get("1.0", END)
            password = self.passw_box.get("1.0", END)
            decrypted_text = ""
            for i in range(len(data)):
                new = chr(abs(ord(password[(i % len(password))]) - ord(data[i])))
                decrypted_text = decrypted_text + new
            tkinter.messagebox.showinfo("decrypted text in utf-8",decrypted_text)
        main_win.en_button = tk.Button(self, text = "encrypt", width = 25,command = encrypt(main_win))
        main_win.de_button = tk.Button(self, text="decrypt", width=25, command= decrypt(main_win))





def main():
    app().mainloop()


if __name__ == '__main__':
    main()

我扩展了一个可以解密和加密文本的应用程序。请注意,加密和解密功能需要密码和文本。

1 个答案:

答案 0 :(得分:0)

将参数传递给按钮命令需要lambda函数。

重构命令
command = cmd(param)

command = lambda: cmd(param)

应解决按钮命令问题。