You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

82 lines
3.1 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

from tkinter import LEFT, RIGHT, Button, Entry, StringVar, ttk
from tkinter.filedialog import askopenfilename
from tkinter.tix import Tk # 升级的组合控件包
from client_createcip import createcip
from client_sendcipkey import sendcipkey
from client_senddata import senddata
from client_sendsig import sendsig
from client_twokey import client_twokey
from ttkbootstrap import Style
def init_window():
# 创建窗口
global root
root = Tk()
style = Style(theme='minty')
root.title("客户端")
root.geometry("700x500")
root.configure(bg='white')
root.resizable(width=True, height=True) # 设置窗口是否可以变化长/宽False不可变True可变默认为True
root.tk.eval("package require Tix")
# 创建文本框
path = StringVar()
path.set("请选择文件")
ttk.Entry(root, textvariable=path, width=25,bootstyle="info").place(x=30,y=120,width=180,height=30)
def selectPath():
# 选择文件path_接收文件地址
path_ = askopenfilename()
# 通过replace函数替换绝对文件地址中的/来使文件可被程序读取
# 注意:\\转义后为\,所以\\\\转义后为\\
path_ = path_.replace("/", "\\\\")
# path设置path_的值
path.set(path_)
# 创建按钮
ttk.Button(root, text="选择文件", command=selectPath,bootstyle="info").place(x=220,y=120)
model = StringVar()
model.set("选择加密模式")
values = ["DES", "AES_ECB", "AES_CBC"]
ttk.Combobox(
master=root, # 父容器
height=3, # 高度,下拉显示的条目数量
width=15, # 宽度
state="normal", # 设置状态 normal(可选可输入)、readonly(只可选)、 disabled
cursor="arrow", # 鼠标移动时样式 arrow, circle, cross, plus... # 字体
textvariable=model, # 通过StringVar设置可改变的值
values=values,
bootstyle="info",# 设置下拉框的选项
).place(x=30,y=210,width=180,height=30)
ttk.Button(
root,text="生成发送端公私钥",command=client_twokey,bootstyle="default-outline"
).place(x=400, y=50, width=200, height=60)
# 创建按钮
ttk.Button(
root,text="生成数字信封文件",command=lambda: createcip(path=path.get(), op=model.get()),
bootstyle="default-outline").place(x=400,y=140,width=200,height=60)
ttk.Button(root, text="发送加密对称密钥", command=sendcipkey,
bootstyle="default-outline").place(x=400, y=230, width=200, height=60)
# 创建按钮
ttk.Button(root, text="发送加密文件", command=senddata,bootstyle="default-outline").place(x=400, y=320, width=200, height=60)
# 创建按钮
ttk.Button(root, text="发送签名", command=sendsig,bootstyle="default-outline").place(x=400, y=410, width=200, height=60)
# 创建按钮
ttk.Button(root, text="退出", command=root.quit,bootstyle="info").place(x=30,y=300,width=180,height=30)
# 进入消息循环
root.mainloop()
if __name__ == "__main__":
init_window()