这是我第一个使用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()
我扩展了一个可以解密和加密文本的应用程序。请注意,加密和解密功能需要密码和文本。
答案 0 :(得分:0)
将参数传递给按钮命令需要lambda函数。
从
重构命令command = cmd(param)
到
command = lambda: cmd(param)
应解决按钮命令问题。