繁体   English   中英

如何在 Python + Tkinter 中获取菜单复选按钮以调用函数?

[英]How to get a menu checkbutton to call a function in Python + Tkinter?

所以,我现在正在使用 python + tkinter 进行个人项目(只是为了尝试自己)。 它是一个加密器,这意味着它获取一段文本并使用一些著名的密码(如数字密码、凯撒密码等)对其进行加密。
现在,我想让用户选择保存他加密的文本以及程序生成的加密文本。 为此,我在程序菜单上创建了两个复选按钮:一个用于“保存文本”,另一个用于“保存加密文本”。 我的问题是,我试图附加一个函数作为它的命令选项,所以,我猜它应该在单击该选项时运行该函数。 但它没有发生。
在传递代码之前,我将解释函数应该做什么。
他们应该提示一个问题,询问用户他/她是否真的想用文本和加密文本创建一个文本文件(这不是一个数据库,它只是让用户以后能够阅读他/她的文本的东西) /she 加密和加密版本,如果他/她愿意)。 所以,到代码:

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)

复选按钮选项,现在的功能:

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 Menu 绝对可以调用一个函数。 这就是 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()

要回答您的具体问题,是的,当您单击复选按钮时将调用该函数。

您应该在菜单上调用add_command而不是add_checkbutton 使用复选按钮从菜单中调用功能是非常不寻常的,并且可能会使您的用户感到困惑。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM