You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将凯撒编码器脚本嵌入CustomTkinter窗口?

凯撒编码器整合CustomTkinter窗口实现方案

1. 重构编码逻辑为可调用函数

先把原来的命令行编码逻辑改成函数,方便GUI直接调用,同时加入错误处理:

def caesar_encrypt(offset_str, text):
    try:
        offset = int(offset_str)
        encrypted_text = ""
        for char in text:
            encrypted_text += chr(ord(char) + offset)
        return encrypted_text
    except ValueError:
        return "⚠️ 偏移量必须输入整数!"

2. 构建完整GUI界面

在你已有的窗口代码基础上,添加输入控件、结果展示控件和加密按钮,用grid布局让界面更规整:

3. 绑定按钮加密逻辑

添加按钮点击触发函数,负责获取输入、调用加密函数并展示结果:

完整整合代码

把所有部分合并就是最终可用的代码:

import customtkinter

customtkinter.set_appearance_mode("dark")
customtkinter.set_default_color_theme("blue")

def caesar_encrypt(offset_str, text):
    try:
        offset = int(offset_str)
        encrypted_text = ""
        for char in text:
            encrypted_text += chr(ord(char) + offset)
        return encrypted_text
    except ValueError:
        return "⚠️ 偏移量必须输入整数!"

def on_encrypt():
    offset = offset_entry.get()
    raw_text = input_text.get("1.0", "end-1c")
    result = caesar_encrypt(offset, raw_text)
    output_text.delete("1.0", "end")
    output_text.insert("1.0", result)

app = customtkinter.CTk()
app.geometry("780x400")
app.title("凯撒编码器")

# 偏移量输入区域
offset_label = customtkinter.CTkLabel(app, text="偏移量:")
offset_label.grid(row=0, column=0, padx=20, pady=(20, 5), sticky="w")
offset_entry = customtkinter.CTkEntry(app, width=150)
offset_entry.grid(row=0, column=1, padx=10, pady=(20, 5), sticky="w")

# 待加密文本输入区域
input_label = customtkinter.CTkLabel(app, text="待加密文本:")
input_label.grid(row=1, column=0, padx=20, pady=(10, 5), sticky="nw")
input_text = customtkinter.CTkTextbox(app, width=600, height=120)
input_text.grid(row=2, column=0, columnspan=2, padx=20, pady=(0, 10), sticky="nsew")

# 加密结果展示区域
output_label = customtkinter.CTkLabel(app, text="加密结果:")
output_label.grid(row=3, column=0, padx=20, pady=(10, 5), sticky="nw")
output_text = customtkinter.CTkTextbox(app, width=600, height=120)
output_text.grid(row=4, column=0, columnspan=2, padx=20, pady=(0, 10), sticky="nsew")

# 加密按钮
encrypt_btn = customtkinter.CTkButton(app, text="开始加密", command=on_encrypt)
encrypt_btn.grid(row=5, column=0, columnspan=2, pady=10)

# 自适应布局配置
app.grid_rowconfigure(2, weight=1)
app.grid_rowconfigure(4, weight=1)
app.grid_columnconfigure(1, weight=1)

app.mainloop()

说明

  • 用CTkTextbox处理多行文本输入输出,比单行输入框更实用
  • 加入错误处理,偏移量输入非整数时会给出提示
  • 配置网格权重,窗口缩放时控件会自动调整大小

内容的提问来源于stack exchange,提问作者Planky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 02:17:42