所以,我现在正在使用python + tkinter进行个人项目(只是为了尝试自己)。它是一个加密器,这意味着它获取一段文本并使用一些着名的密码加密它(如数字密码,凯撒的密码等)。 现在,我想让用户选择保存他加密的文本,以及程序生成的加密文本。为此,我在程序菜单上创建了两个checkbutton:一个用于“保存文本”,另一个用于“保存加密文本”。我的问题是,我试图附加一个函数作为它的命令选项,所以,我想它应该在单击该选项时运行该函数。但事情并没有发生 我将在传递代码之前解释一下这些功能 他们应该提示一个问题,询问用户他/她是否真的想要创建一个包含文本和加密文本的文本文件(这不是一个数据库,它只是让用户能够稍后阅读文本的内容) /她加密和加密版本,如果他/她想)。 所以,代码:
encryptermenu = Menu(menubar, tearoff=0)
encryptermenu.add_checkbutton(label="Save Text", variable=v, command=saveText)
encryptermenu.add_checkbutton(label="Save Encrypted Text", variable=w, command=saveEncryptedText)
menubar.add_cascade(label="Encrypter", menu=encryptermenu)
checkbutton选项,现在是函数:
def saveText():
sdtst = messagebox.askyesno(title="Save Text", message="A .txt file will be created at the same directory as this program to save the text you decided to encrypt. Is it ok?")
def saveEncryptedText():
sdtset = messagebox.askyesno(title="Save Encrypted Text", message="A .txt file will be created at the same directory as this program to save the encrypted text generated by this program. Is it ok?")
checkbutton是否真的可以点击这个功能,或者我只是混淆了? 无论如何,希望有人能帮助我。
答案 0 :(得分:1)
要回答您的具体问题,是的,单击检查按钮时将调用该函数。
您应该在菜单上调用add_command
而不是add_checkbutton
。使用checkbutton从菜单调用函数是非常不寻常的,可能会使用户感到困惑。
答案 1 :(得分:1)
Checkbutton菜单绝对可以调用一个函数。这就是checkbutton选项的用途:)
我通常使用2个函数来处理来自checkbutton菜单的调用。
首先创建该菜单并将其分配给布尔变量
yesno = BooleanVar(root)
mymenu.add_checkbutton(label="Do this ?", variable=yesno, command=mytoggle)
然后你需要2个功能: 1)一个回调切换 2)一个处理是
def mytoggle(event=None):
val = yesno.get()
if val:
dosomething()
else:
somethingelse()