用python向这个程序添加一个图形界面(Tkinter)?
我刚刚用Python写了一个程序。该程序执行以下操作: 有一个类叫做original。它有两个方法(init的一部分)。第一种方法是代码。“代码”所做的是接收字符串并对其进行编码,将接收字符串中的每个字符更改为ASCII表中的另一个字符。此ASCII字符取决于函数generacion\u clave。函数generacion_clave随机生成一个介于1和k之间的数字(k是此函数的输入参数) 例如,字符“e”位于ASCII表格的101处。因此,如果生成的数字是8,字符e将更改为ASCII表中的字符,其位置为109(101+8) decode方法接收编码字符串和clave,并返回解码字符串 我想做的是向程序中添加一个图形界面,其中包含: 一个原始字符串的输入框,一个画布(或一个输出框?),我们将在其中显示编码和解码字符串,一个编码按钮和一个解码按钮 我是Python新手,我读过一些关于Tkinter的教程,但我觉得这一点都不容易。因此,我将感谢任何帮助:) 提前多谢!用python向这个程序添加一个图形界面(Tkinter)?,python,string,python-2.7,tkinter,tkinter-canvas,Python,String,Python 2.7,Tkinter,Tkinter Canvas,我刚刚用Python写了一个程序。该程序执行以下操作: 有一个类叫做original。它有两个方法(init的一部分)。第一种方法是代码。“代码”所做的是接收字符串并对其进行编码,将接收字符串中的每个字符更改为ASCII表中的另一个字符。此ASCII字符取决于函数generacion\u clave。函数generacion_clave随机生成一个介于1和k之间的数字(k是此函数的输入参数) 例如,字符“e”位于ASCII表格的101处。因此,如果生成的数字是8,字符e将更改为ASCII表中的字
Pablo用Tk构建GUI并不是那么困难 您需要一个条目(用于输入的小部件)、一组标签(用于打印输出)和一个按钮 这里提到了构建主框架和使用入口小部件 我建议您尝试一下基本的gui(可能在单独的文件中),我们将在gui完成后链接它们
如果您需要,我将在创建基本GUI后帮助您进行链接。我尝试过这样做。我开始只添加两个按钮(编码和退出)。Encode应该调用类original中的Encode方法,而Quit应该关闭窗口(可以正常工作)。有人知道为什么“编码”按钮不起作用吗
from random import randint
from Tkinter import *
class original():
def __init__(self, mensaje_original):
self.mensaje_original = mensaje_original
def code(self, gen_clav, *args):
cadena_codificada =""
clave = gen_clav(*args)
for i in self.mensaje_original:
clave_mod = ord(i) + clave
if clave_mod > 255:
clave_mod = clave_mod - 255
cadena_codificada = cadena_codificada + chr(clave_mod)
print cadena_codificada, clave
return cadena_codificada, clave
def decode(self, cadena_cod_clave):
cadena_decodificada =""
clave = int(cadena_cod_clave[1])
for i in cadena_cod_clave[0]:
clave_mod = ord(i) - clave
if clave_mod > 255:
clave_mod = clave_mod - 255
cadena_decodificada = cadena_decodificada + chr(clave_mod)
return cadena_decodificada, cadena_cod_clave[1]
def generacion_clave(k):
cl = randint(1, k + 1)
return cl
class graficos:
def __init__(self, master):
frame = Frame(master)
frame.pack()
self.encode_buttom = Button(frame, text = "Encode!", command = self.printMessage)
self.encode_buttom.pack(side = LEFT)
self.quit_buttom = Button(frame, text = "Quit", command = frame.quit)
self.quit_buttom.pack(side = LEFT)
def printMessage(self):
mensaje_original = "Hola tio como estas"
mensaje = self.original(mensaje_original)
print mensaje
root = Tk()
root.geometry("250x250")
b = graficos(root)
root.mainloop()
非常感谢。
当做
Pablo欢迎来到Stack Overflow。不幸的是,这不是一个免费的代码编写服务,所以您真的应该尝试自己实现它。如果您在实现过程中遇到任何问题,您可以询问特定的问题。代码的某些部分应该移到正确的方向。我只是抄得不正确,但我觉得已经很清楚了。再次感谢。请不要在回答部分扩展您的问题。答案部分严格地用于回答您的问题。如果要添加其他信息,可以编辑原始问题。
from random import randint
from Tkinter import *
class original():
def __init__(self, mensaje_original):
self.mensaje_original = mensaje_original
def code(self, gen_clav, *args):
cadena_codificada =""
clave = gen_clav(*args)
for i in self.mensaje_original:
clave_mod = ord(i) + clave
if clave_mod > 255:
clave_mod = clave_mod - 255
cadena_codificada = cadena_codificada + chr(clave_mod)
print cadena_codificada, clave
return cadena_codificada, clave
def decode(self, cadena_cod_clave):
cadena_decodificada =""
clave = int(cadena_cod_clave[1])
for i in cadena_cod_clave[0]:
clave_mod = ord(i) - clave
if clave_mod > 255:
clave_mod = clave_mod - 255
cadena_decodificada = cadena_decodificada + chr(clave_mod)
return cadena_decodificada, cadena_cod_clave[1]
def generacion_clave(k):
cl = randint(1, k + 1)
return cl
class graficos:
def __init__(self, master):
frame = Frame(master)
frame.pack()
self.encode_buttom = Button(frame, text = "Encode!", command = self.printMessage)
self.encode_buttom.pack(side = LEFT)
self.quit_buttom = Button(frame, text = "Quit", command = frame.quit)
self.quit_buttom.pack(side = LEFT)
def printMessage(self):
mensaje_original = "Hola tio como estas"
mensaje = self.original(mensaje_original)
print mensaje
root = Tk()
root.geometry("250x250")
b = graficos(root)
root.mainloop()