将简单gui添加到我的简单python代码中

将简单gui添加到我的简单python代码中,python,user-interface,Python,User Interface,我已经编写了这段python代码,并且正在尝试添加一个简单的GUI。我想使用GUI从用户那里获取输入,而不是硬编码输入 import math def main(): ciphertext = 'litrutisfgsofnaeeieoitdt' myKey = 4 plaintext = decryption(myKey, ciphertext) print(plaintext) def decryption(key, message): co

我已经编写了这段python代码,并且正在尝试添加一个简单的GUI。我想使用GUI从用户那里获取输入,而不是硬编码输入

 import math

def main():
    ciphertext = 'litrutisfgsofnaeeieoitdt'
    myKey = 4

    plaintext = decryption(myKey, ciphertext)
    print(plaintext)

def decryption(key, message):

    colNum = math.ceil(len(message) / key)
    rowNum = key
    shadeNum = (colNum * rowNum) - len(message)
    plaintext = [''] * colNum

    col = 0
    row = 0

    for symbol in message:
        plaintext[col] += symbol
        col += 1 

        if (col == colNum) or (col == colNum - 1 and row >= rowNum - shadeNum):
            col = 0
            row += 1

    return ''.join(plaintext)

if __name__ == '__main__':
    main()

我想从用户输入中获取密码文本和密钥,并添加一个按钮,该按钮将执行解密部分并在标签中显示结果。我正在尝试用Tkinter添加GUI,但老实说,我不知道如何链接它。有什么想法吗?

如果您只需要动态输入,请使用raw_input()函数(Python3的just input())。如果您真的需要GUI,我只能向您指出内置的Tkinter模块,它可能是python最简单的(许多)GUI框架。其文档可在此处找到:。我没有必要为您编写完整的代码。这很容易学,如果你陷入困境,问一个更精确的问题,肯定会有人乐意回答

您可以从示例代码开始,将解密函数与UI中的decrypt按钮链接起来。 逻辑是将回调函数附加到按钮

import Tkinter
from Tkinter import *


def decrypt(key, cyphertext):
    # do decryption
    return "Decrypted "+key+cyphertext


def callback(cyphertextEntry, keyEntry, output):
    cyphertext = cyphertextEntry.get()
    key = keyEntry.get()
    decrypted = decrypt(key, cyphertext)
    output.set(decrypted)


top = Tkinter.Tk()
frame1 = Frame(top)
frame1.pack()
frame2 = Frame(top)
frame2.pack()
frame3 = Frame(top)
frame3.pack()
frame4 = Frame(top)
frame4.pack()
L1 = Label(frame1, text="Cypher")
L1.pack(side=LEFT)
E1 = Entry(frame1, bd=5)
E1.pack(side=LEFT)
L2 = Label(frame2, text="Key")
L2.pack(side=LEFT)
E2 = Entry(frame2, bd=5)
E2.pack(side=LEFT)
B1 = Tkinter.Button(frame3, text="Decrypt", command=lambda: callback(E1, E2, v)) 
B1.pack()
L2 = Label(frame4, text="Output")
L2.pack()
v = StringVar()
L3 = Label(frame4, textvariable=v)
L3.pack(side=LEFT)

top.mainloop()
“如何链接”是什么意思?不清楚你在问什么。