简而言之,GUI按钮似乎与错误的功能相关联。 我已经开始创建一个Vigenere密码。用于重定向到加密功能的按钮改为重定向到解密功能。 W /我当前的代码没关系,因为这两个代码几乎相同,但它们最终会有不同的用途,因此需要相互区分。
我不确定问题出在哪里,所以附上整个代码。
from appJar import gui
app = gui("Vigenere Chipher")
app.addLabel("title", "Vigenere Chipher")
app.setBg("cyan")
app.setSize(600,400)
def press(Encrypt):
app.removeAllWidgets()
app.addLabel("title", "Encryption")
app.addEntry("Phrase")
app.setEntryDefault("Phrase", "Enter Phrase Here")
app.addEntry("Key")
app.setEntryDefault("Key", "Enter Key Here")
app.addLabel("RESULT", "This is your encrypted message: ")
def press(Submit):
phrase = app.getEntry("Phrase")
key = app.getEntry("Key")
def press(Back):
app.removeAllWidgets()
app.addLabel("title", "Vigenere Chipher")
app.setBg("cyan")
app.setSize(600,400)
app.addButtons(["Submit", "Back"], press)
def press(Decrypt):
app.removeAllWidgets()
app.addLabel("title", "Decryption")
app.addEntry("Phrase")
app.setEntryDefault("Phrase", "Enter Phrase Here")
app.addEntry("Key")
app.setEntryDefault("Key", "Enter Key Here")
phrase = app.getEntry("Phrase")
key = app.getEntry("Key")
app.addLabel("RESULT", "This is your decrypted message: ")
def press(Back):
app.removeAllWidgets()
app.addLabel("title", "Vigenere Chipher")
app.setBg("cyan")
app.setSize(600,420)
app.addButtons(["Encrypt", "Decrypt", "Close"], press)
app.addButtons(["Submit", "Back"], press)
app.addButtons(["Encrypt", "Decrypt", "Close"], press)
app.go()
谢谢你的帮助
答案 0 :(得分:0)
您已定义了多个具有相同名称press
的功能。只使用最后一个定义(解密的定义),因为它将取代之前的定义 - 这不是你想要的。
然后,您已将所有按钮链接到此功能。
所以,你需要改变的第一件事就是给每个函数赋予它自己的名字:
def encrypt()
...
def decrypt()
...
然后,您需要更改将按钮链接到该功能的方式。
您有两种选择:
1)有一个通用的按下功能,它使用按钮名称上的IF语句来确定动作:
def press(btn):
if btn == "Encrypt":
encrypt()
elif btn == "Decrypt":
decrypt()
elif btn == "Close":
app.stop()
app.addButtons(["Encrypt", "Decrypt", "Close"], press)
2)直接将每个按钮链接到正确的功能。
app.addButtons(["Encrypt", "Decrypt", "Close"], [encrypt, decrypt, app.stop])
稍后,您会遇到Submit
&的问题。 Back
按钮,需要使用相同的策略......