大数据&云计算太实用了!自己动手写软件——密码破解工具的界面实现


在之前的篇幅中 , 我们已经知道了我们想要编写的软件的输入输出参数 。
软件输入参数:
服务器IP
服务器端口
协议类型
用户名(从密码字典中读取 , 无需软件界面展示)
密码(从密码字典中读取 , 无需软件界面展示)
软件输出参数:
破解结果:成功时展示正确的用户名密码 , 失败时返回失败提示
我们今天的目标很简单 , 就是先把软件的界面设计和写出来 , 并不关心每一个按钮和输入框之后的功能实现 。 我设计一个这样的界面(极其简单 , 只是实现功能)
大数据&云计算太实用了!自己动手写软件——密码破解工具的界面实现
本文插图
代码讲解
之前我就讲过 , 我们进行tkinter编程 , 就好像在一块画布上画画 。 今天学习学这个界面的时候 , 我想完善一下我之前的内容 。 我们进行tkinter编程 , 应该是就好像在一块画布上进行贴画 。 咱们后面一一道来 。
首先我们需要拿了一张画布 , 下面就是我们摆好画布的操作 。
window.title("密码破解工具") # 窗口标题 window.geometry("300x250")
接下来我一开始尝试直接在这块画布上使用pack方法画画 , 我发现每一个方块的位置并不像我预期的一样摆放整齐 , 它可能是这样的
大数据&云计算太实用了!自己动手写软件——密码破解工具的界面实现
本文插图
也有可能是这样的 , 总之十分诡异 。 很难使用pack方法摆放整齐 。
大数据&云计算太实用了!自己动手写软件——密码破解工具的界面实现
本文插图
后来我发现了之前我漏掉一个非常重要的分隔组件——Frame 。 这个东西就是一个框架 , 我们可以选择将组件贴在框架内 , 这样组件的位置就比较容易控制 。 这个就是我前面说是在画布上进行贴画的说法 。 于是我的设计图改成了这样子 。
大数据&云计算太实用了!自己动手写软件——密码破解工具的界面实现
本文插图
改成这样之后 , 页面编写就方便多了 。
先在左边画一个大框架
【大数据&云计算太实用了!自己动手写软件——密码破解工具的界面实现】frame = tkinter.Frame(window) frame.pack(side="left")
然后在左边的框架内画出服务器地址的框架和内容
#服务器IP提示标签、输入框 frame_ip = tkinter.Frame(frame) frame_ip.pack(side="top") label_ip = tkinter.Label(frame_ip,height=2,width=10,text="服务器地址") label_ip.pack(side="left") entry_ip = tkinter.Entry(frame_ip) entry_ip.pack(side="right")
接着我们在左边框架内再画一个服务器端口的框架和内容
#服务器端口提示标签、输入框 frame_port = tkinter.Frame(frame) frame_port.pack(side="top") label_port = tkinter.Label(frame_port,height=2,width=10,text="服务器端口") label_port.pack(side="left") entry_port = tkinter.Entry(frame_port) entry_port.pack(side="right")
然后我们再在左边框架内再画一个协议的框架和内容 , 由于协议是多个选择中选择一个 , 所以我们使用了一个Listbox组件 , 御用列举出多个协议 。
# 协议提示标签、输入框 list_pro = ["POP3", "SMTP", "IMAP", "FTP", "SSH", "Oracle", "MySql", "SQL Server"] frame_pro = tkinter.Frame(frame) frame_pro.pack(side="top") label_pro = tkinter.Label(frame_pro,height=2,width=10, text="协议类型") label_pro.pack(side="left") listbox_pro = tkinter.Listbox(frame_pro) i = 0 for item in list_pro: listbox_pro.insert(i, item) i += 1 listbox_pro.pack(side="left")


推荐阅读