我的大学作业是写一个Python程序,用ROT13加密给定的单词。我成功地做到了这一点,因此作为个人挑战,我想创建一个使用这个加密程序的Tkinter GUI程序。在
当我在默认的PythonIDE(IDLE)中运行它时,下面的代码完全可以正常工作,但是当我通过双击.py文件来运行它时,它只会在一瞬间打开一个控制台窗口,然后什么也没有。我做错什么了?我需要用不同的方式把窗户打包吗,还是别的什么?在
from tkinter import *
def encrypt():
OldString = v.get()
NewString = ''
for letter in OldString:
OldCode = ord(letter)
if OldCode < (ord('N')):
NewCode = (OldCode + 13)
else:
NewCode = (OldCode - 13)
NewChar = chr(NewCode)
NewString = (NewString + NewChar)
v.set(NewString)
def decrypt():
OldString = v.get()
NewString = ''
for letter in OldString:
OldCode = ord(letter)
if OldCode > (ord('N')):
NewCode = (OldCode + 13)
else:
NewCode = (OldCode - 13)
NewChar = chr(NewCode)
NewString = (NewString + NewChar)
v.set(NewString)
win = Tk()
win.wm_title("ROT13 Encrypter")
win.minsize(150,100)
f = Frame(win)
l = Label(win, text="ROT13 Encrypter", font=('', 12, 'bold'))
v = StringVar()
e = Entry(f, textvariable=v)
b1 = Button(f, text="Encrypt", font=('', 9, 'bold'), command=encrypt)
b2 = Button(f, text="Decrypt", font=('', 9, 'bold'), command=decrypt)
e.pack(pady=5)
b1.pack(side=LEFT, padx=8, pady=5)
b2.pack(side=RIGHT, padx=8, pady=5)
l.pack()
f.pack()
仅供参考,我打算用cx_Freeze打包这个程序,这样我就可以从我的U盘上轻松地运行.exe。在
提前谢谢。在
首先导入Tkinter,例如:
剩下的代码就可以正常工作了。在
最后调用根窗口
win.mainloop()
在IDLE之外,您需要在脚本末尾调用根窗口的
mainloop
方法:这样做将启动应用程序的主事件循环。在
相关问题 更多 >
编程相关推荐