【发布时间】:2021-05-09 22:31:02
【问题描述】:
我正在尝试一个简单的 gui,它在同一窗口中使用“秘密号码”/密钥标识符对消息进行加密和解密,以获得乐趣。到目前为止,它有效,我对此感到非常满意。我唯一的问题是我在 crypt() 函数中得到了我想要的输出返回,然后是 {}。使用普通的 print() 函数,我没有这个问题。但是,使用 GUI 可以。我想是 tkinter 包在做这个吗?
我的代码:
from tkinter import *
import tkinter.messagebox
def crypt():
so = int(nu1.get())
inp = str(nu2.get().upper())
old_dic = {chr(i): i * (int(so)+int(so))for i in range(ord("A"), ord("A") + 26)}
if len(inp) >= 1:
bit = list(inp)
spell = list(map(old_dic.get, bit))
spell = spell[::-1]
ans1 = (*spell, "")
blank4.insert(0, ans1)
else:
print("Improper input.")
main = Tk()
Label(main, text = "Enter secret number:").grid(row=0)
Label(main, text = "Cryptify:").grid(row=1)
Label(main, text = "Encrypted output:").grid(row=2)
Button(main, text='Show', command=crypt).grid(row=3, column=1, sticky=W, pady=4)
nu1 = Entry(main)
nu2 = Entry(main)
blank4 = Entry(main)
nu1.grid(row=0, column=1)
nu2.grid(row=1, column=1)
blank4.grid(row=2, column=1)
mainloop()
我得到的加密输出如下所示:
秘密号码:45
加密:你好
加密输出:7110 6840 6840 6210 6480 {}
输出应如下所示:
秘密号码:45
加密:你好
加密输出:7110 6840 6840 6210 6480
【问题讨论】:
-
请将其缩减为minimal reproducible example。
-
这意味着当它需要一个字符串时,你正在将一个列表或元组传递给一个 tkinter 函数。
-
@mkrieger1 我不确定要减少哪个部分,因为它已经是非常小的代码,并且我包含了可能导致问题的所有方面。同样在底部,我包括我的输入和输出,以便可以复制它。我还应该做什么?
-
一个好方法是从头开始添加创建相同问题所需的最少代码量。例如,一个条目和标签就足够了,而不是多个条目和标签。
-
好的,谢谢。我对这个包了解得不够多,无法理解我的问题出在哪里。所以我包括了很大一部分。我会更新的。