6.优化一下代码,添加一个GUI的用户操作界面
来源:互联网 发布:java程序设计基础答案 编辑:程序博客网 时间:2024/05/29 17:24
1.将用户信息和密码单独建一个类来放
新建一个info.py
class PersonalInfo: login_info = { 'u':'16126193', 'p':'1' } def set_info(self,user,password): self.login_info['u'] = user self.login_info['p'] = password
2.新建一个GUI.py,实现一下界面的功能。
这里用到了Tkinter库来实现界面。
我认为用户需要输入的有:账号,密码,课程value,最多刷课次数,刷新间隔时间。(课程的value值我真是没找到对应关系,所以也是很无奈)
需要给用户呈现的有:选课结果
界面间简单的布了一下,也没有实现用户输入值的合法性判断,先实现功能以后再优化。直接贴代码:
GUI.py
# -*- coding: UTF-8 -*-import Tkinterimport infoimport qiangkeimport timeroot = Tkinter.Tk()# 进入消息循环root.title('说实话我也不信这玩意能正常帮你抢课')root.geometry('600x550')root.resizable(width=False, height=True) #宽不可变, 高可变,默认为Truefrm = Tkinter.Frame(root)frm_1 = Tkinter.Frame(frm)Tkinter.Label(frm_1, text='学号:', font=('Arial', 15)).pack(side=Tkinter.LEFT)var1 = Tkinter.StringVar()e1 = Tkinter.Entry(frm_1, textvariable = var1)var1.set("16126193")e1.pack(side=Tkinter.RIGHT)frm_1.pack(side=Tkinter.TOP)#2frm_2 = Tkinter.Frame(frm)Tkinter.Label(frm_2, text='密码:', font=('Arial', 15)).pack(side=Tkinter.LEFT)var2 = Tkinter.StringVar()e2 = Tkinter.Entry(frm_2, textvariable = var2)var2.set("123456")e2.pack(side=Tkinter.RIGHT)frm_2.pack(side=Tkinter.TOP)#3frm_3 = Tkinter.Frame(frm)Tkinter.Label(frm_3, text='最多重复:', font=('Arial', 15)).pack(side=Tkinter.LEFT)var3 = Tkinter.StringVar()e3 = Tkinter.Entry(frm_3, textvariable = var3)var3.set("2")e3.pack(side=Tkinter.LEFT)Tkinter.Label(frm_3, text='次停止', font=('Arial', 15)).pack(side=Tkinter.LEFT)frm_3.pack(side=Tkinter.TOP)#3—2frm_3_2 = Tkinter.Frame(frm)Tkinter.Label(frm_3_2, text='每次重复间隔:', font=('Arial', 15)).pack(side=Tkinter.LEFT)var3_2 = Tkinter.StringVar()e3_2 = Tkinter.Entry(frm_3_2, textvariable = var3_2)var3_2.set("2")e3_2.pack(side=Tkinter.LEFT)Tkinter.Label(frm_3_2, text='秒', font=('Arial', 15)).pack(side=Tkinter.LEFT)frm_3_2.pack(side=Tkinter.TOP)#4frm_4 = Tkinter.Frame(frm)Tkinter.Label(frm_4, text='课程value值:', font=('Arial', 15)).pack(side=Tkinter.LEFT)var4 = Tkinter.StringVar()e4 = Tkinter.Entry(frm_4, textvariable = var4)var4.set("19559")e4.pack(side=Tkinter.LEFT)Tkinter.Label(frm_4, text='(不是课程编号!目前得从浏览器源代码查看)', font=('Arial', 15)).pack(side=Tkinter.LEFT)frm_4.pack(side=Tkinter.TOP)frm.pack()t = Tkinter.Text()t.pack()def run(): user = e1.get() #t.insert(Tkinter.END, 'user:' + user+'\n') password = e2.get() #t.insert(Tkinter.END,'password:' + password+'\n') times = e3.get() #t.insert(Tkinter.END, 'time:' + time3 + '\n') coursevalue = e4.get() #t.insert(Tkinter.END, 'coursevalue:' + coursevalue + '\n') times = int(times) #更改用户名和密码 interval = e3_2.get() interval = int(interval) im = info.PersonalInfo() im.set_info(user,password) #设置选课字典 dict1 = {'checkbox':coursevalue} for i in range(times): str = qiangke.qiang(dict1) t.insert(Tkinter.END, '第%i次结果:' % (i + 1) + str + '\n') t.update() if str == '验证码错误!': t.insert(Tkinter.END, '验证码识别好难,让我再试一次=。=' + '\n') t.update() time.sleep(interval) elif str == '课程重复!': t.insert(Tkinter.END, '最终结果:这课程都重复了,你都自己选好了还尼玛让我帮你选?!'+ '\n') t.update() break elif str == '选课成功!': t.insert(Tkinter.END, '接种结果:成功啦~快去瞅一眼有没有选上!' + '\n') t.update() break if i == times-1: t.insert(Tkinter.END, '已经结束了貌似还是没有选成功,你多设置点次数好不好' + '\n') t.update() #dic2 = t.get()def clear(): t.delete(1.0, Tkinter.END)frm5 = Tkinter.Frame(root)Tkinter.Button(frm5, text="开始", command = run).pack(side=Tkinter.LEFT)Tkinter.Button(frm5, text="清空", command = clear).pack()frm5.pack(side=Tkinter.BOTTOM)root.mainloop()
到这步基本上就完成了一个劣质软件的编写,接下来再做一个最后的总结
阅读全文
0 0
- 6.优化一下代码,添加一个GUI的用户操作界面
- BotHunter的GUI操作界面
- python 数据库操作以及一个GUI界面
- 一个GUI界面
- 介绍一下Oracle的操作符优化?
- 介绍一下Oracle的操作符优化?
- 一个操作数据库的类(备份,还原,分离,附加,添加删除用户等操作)
- 用MATLAB设计一个超简单的变声GUI界面
- pyFormUI: 一个简单的Python GUI界面框架
- GUI界面的选择
- 一个简单的用户登录界面
- JavaScript一个用户登录的简单界面
- namedmanager 一个用户管理 bind 的 web gui
- 利用Java GUI 实现一个简易的用户管理系统
- 给你的gui程序添加一个彩色的控制台
- 添加超级用户的.asp代码
- 一个简单的通过上下左右键移动div的案例--可用于游戏的用户操作界面
- 【转载苏飞的博客】一个操作数据库的类(备份,还原,分离,附加,添加删除用户等操作)
- Fragment
- javascrip执行顺序问题
- jQuery之异步Ajax请求使用 通过传递参数来调用后台方法返回状态
- 各种资源网站收集
- socket跟TCP/IP 的关系,单台服务器上的并发TCP连接数可以有多少
- 6.优化一下代码,添加一个GUI的用户操作界面
- CentOS安装内核源代码
- 切换node版本之初次踩坑
- PHP使用随机数实现简单的概率抽奖
- 97. Interleaving String
- Spring框架中七大模块
- 《Effective C++读书笔记》--条款13:以对象管理资源
- HDR文件格式简介
- flask应用中通过requests发起新请求时一直超时或假死