首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python文本编辑器

Python文本编辑器
EN

Stack Overflow用户
提问于 2021-12-11 20:26:09
回答 1查看 85关注 0票数 -1

我有一个用tkinter制作的GUI文本编辑器。它当前打开、保存和清除屏幕。我已经添加了一个加密和解密按钮,并将最终应用ceasar密码到任何文本在屏幕上。到目前为止我的加密按钮

代码语言:javascript
复制
def encrypt():
    text = editor.get(1.0, tk.END)
    encryptList = []
    for word in text:
        encryptList.append(word)
        
    random.shuffle(encryptList)
    return encryptList

我想要做的是从屏幕上的任何东西(我使用带有" test“多次打印的测试文件)对屏幕上的文本进行洗牌,在我能够这样做之后,我可以在屏幕上的文本上实现一个cesar密码。(我希望)

整个代码:

代码语言:javascript
复制
#Import Module
import random
import tkinter as tk
from tkinter.filedialog import askopenfilename, asksaveasfilename
from tkinter import ttk


#Create Function for New File Button
def fileNew():
    editor.delete(1.0, tk.END)

#Create Function For Open File Button
def fileOpen():
    editor.delete(1.0, tk.END)
    filepath = askopenfilename(filetypes=[("Text Files", "*.txt"), ("All Files", "*.*")])      
    with open(filepath, "r") as file:
        text = file.read()
        editor.insert(tk.END, text)
        
def encrypt():
    text = editor.get(1.0, tk.END)
    encryptList = []
    for word in text:
        encryptList.append(word)
        
    random.shuffle(encryptList)
    return encryptList
        
    
        
#Create Function For Save File Button
def fileSave():
    save = asksaveasfilename(defaultextension=".*", filetypes=[("Text Files", "*.txt"), ("All Files", "*.*")])
    if not save:
        return
    with open(save, "w") as fileOutput:
        text = editor.get(1.0, tk.END)
        fileOutput.write(text)
        
        
        
#GUI
root = tk.Tk()
root.rowconfigure(0, minsize=500, weight=1)
root.columnconfigure(1, minsize=800, weight=1)
#Title
root.title()



#Text Editor
editor = tk.Text(root)
editor.configure(background="#263D42")
editor.grid(row=0, column=1, sticky="nsew")



#Scrollbar
scrollbar = ttk.Scrollbar(root, orient='vertical', command=editor.yview)
scrollbar.grid(row=0, column=2, sticky='ns')



#Left Side Panel
sidePanel = tk.Frame(root)
sidePanel.configure(background="#232e3a")
sidePanel.grid(row=0, column=0, sticky="ns")


#Open File Button
btn_open = tk.Button(sidePanel, text="Open", command=fileOpen)
btn_open.configure(background="#867c91")
btn_open.grid(row=0, column=0, sticky="ew", padx=5, pady=5)

#New File Button
btn_new = tk.Button(sidePanel, text="New", command=fileNew)
btn_new.configure(background="#867c91")
btn_new.grid(row=1, column=0, sticky="ew", padx=5, pady=5)

#Encrypt File Button
btn_open = tk.Button(sidePanel, text="Encrypt", command=encrypt)
btn_open.configure(background="#867c91")
btn_open.grid(row=2, column=0, sticky="ew", padx=5, pady=5)

#Decrypt File Button
btn_open = tk.Button(sidePanel, text="Decrypt")
btn_open.configure(background="#867c91")
btn_open.grid(row=3, column=0, sticky="ew", padx=5, pady=5)

#Save Button
btn_saveas = tk.Button(sidePanel, text="Save As", command=fileSave)
btn_saveas.configure(background="#867c91")
btn_saveas.grid(row=4, column=0, sticky="ew", padx=5, pady=5)



root.mainloop()
EN

回答 1

Stack Overflow用户

发布于 2021-12-11 20:37:04

关着的不营业的。我想出来了

代码语言:javascript
复制
def encrypt():
    text = editor.get(1.0, tk.END)
    encryptList = []
    for word in text:
        encryptList.append(word)
        
    random.shuffle(encryptList)

需要添加

代码语言:javascript
复制
editor.delete(1.0, tk.END)
editor.insert(tk.END, encryptList)
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70318756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档