python写一个随机点名软件,python随机点名,最近有个随机点名软件

最近有个随机点名软件的需求,故写了一个,上代码:github地址# -*- coding: utf-8 -*-# @Time : 18-12-31 下午4:21# @Author : Felix Wangfrom tkinter import *import tkinter.font as tkFontimport randomimport gcimport os, sysimport chardetimport copyfrom threading import Threadimport timedef resource_path(relative): """ 图片路径 :param relative: :return: """ if hasattr(sys, "_MEIPASS"): return os.path.join(sys._MEIPASS, relative) return os.path.join(relative)def center_window(root, width, height): """ 中心大小 :param root: tk对象 :param width: :param height: :return: """ screenwidth = root.winfo_screenwidth() screenheight = root.winfo_screenheight() size = ‘%dx%d+%d+%d‘ % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2) root.geometry(size)def clear(): lb.delete(0, END)def get_names(): names = [] name_path = os.path.join(BASE_DIR, ‘name.txt‘) with open(name_path, ‘rb‘) as f: data = f.read() cod = chardet.detect(data)[‘encoding‘] if ‘gb‘ in str(cod): cod = ‘gbk‘ for name in data.decode(cod).strip().split(‘\n‘): if name.strip(): names.append(name.strip()) return namesclass MyThread(Thread): def __init__(self): self.ifdo = False self.auto_choise = False self.is_auto = -1 super().__init__() def run(self): while True: if self.is_auto is True: while self.ifdo: index = random.randint(0, len(names) - 1) echo["text"] = names[index] root.update_idletasks() time.sleep(1 / 23 - 0.003) self.is_auto = -1 elif self.is_auto is False: if self.auto_choise: self.auto() self.is_auto = -1 time.sleep(0.1) def stop(self): """ 手动抽奖时点击停止按钮时的操作 :return: """ if self.is_auto: self.ifdo = False button2["text"] = ‘手动抽奖‘ pict[‘image‘] = huaji_gif _name = random.choice(names) echo["text"] = _name lb.insert(END, _name) root.update_idletasks() root.update() for x in locals().keys(): del locals()[x] gc.collect() pict[‘image‘] = huaji_gif scrolly.update() def go(self): """ 手动开始时的停止标记 :return: """ if self.is_auto == -1: self.is_auto = True self.ifdo = True pict["image"] = huang_gif button2["text"] = ‘点击停止‘ def auto_start(self): """ 自动开始设置更改标记 :return: """ if self.is_auto == -1: self.is_auto = False self.auto_choise = True pict["image"] = huang_gif button["text"] = ‘先别点我‘ global ft1 ft1 = tkFont.Font(family=‘Fixdsys‘, size=80, weight=tkFont.BOLD) def auto(self): """ 自动开始时执行的操作 :return: """ copy_names = copy.deepcopy(names) ren = int(v.get()) for i in range(ren): for a in range(23): index = random.randint(0, len(names) - 1) echo["text"] = random.choice(names) root.update_idletasks() time.sleep(1 / 23 - 0.003) choise_name = copy_names.pop(random.choice(range(len(copy_names)))) echo["text"] = choise_name lb.insert(END, choise_name) if i == ren - 1: pict[‘image‘] = huaji_gif button["text"] = ‘开始抽奖‘ for a in range(5): root.update() time.sleep(0.06) root.update_idletasks() for x in locals().keys(): del locals()[x] gc.collect() scrolly.update() self.auto_choise = Falseflag = Falsedef name2(): global flag flag = not flag if flag: tr.go() else: tr.stop()def name(): tr.auto_start()try: BASE_DIR = os.path.dirname(os.path.abspath(__file__)) names = get_names() root = Tk() root.title("随机抽奖器(by 王以涛)") center_window(root, 570, 160) ft = tkFont.Font(family=‘Fixdsys‘, size=40, weight=tkFont.BOLD) ft1 = tkFont.Font(family=‘Fixdsys‘, size=80, weight=tkFont.BOLD) echo = Label(root, text=‘随机抽奖‘, font=ft, width=8) # 默认显示 echo.grid(row=1, column=1, columnspan=2) scrolly = Scrollbar(root) scrolly.grid(row=1, column=5, rowspan=2, ipady=30) lb = Listbox(root, yscrollcommand=scrolly.set, exportselection=False, height=6) lb.grid(row=1, column=3, rowspan=2, columnspan=2, pady=0) scrolly[‘command‘] = lb.yview # button = Button(root, text=‘删除所选名字‘, command=lambda x=lb: x.delete(ACTIVE)) # button.grid(row=3, column=3) button = Button(root, text=‘删除所有名字‘, command=clear) button.grid(row=3, column=4) v = StringVar() Scale(root, from_=1, to=len(names), resolution=1, orient=HORIZONTAL, variable=v).grid(row=2, column=1, columnspan=2) # 抽奖时的图片 data_dir = os.path.join(BASE_DIR, "img") huaji_gif = PhotoImage(file=resource_path(os.path.join(data_dir, ‘huaji.gif‘))) huang_gif = PhotoImage(file=resource_path(os.path.join(data_dir, ‘huang.gif‘))) pict = Label(root, image=huaji_gif) pict.grid(row=1, column=0, rowspan=3) button = Button(root, text=‘自动抽奖‘, command=name) button.grid(row=3, column=1, columnspan=1) flag = False button2 = Button(root, text=‘手动抽奖‘, command=name2) button2.grid(row=3, column=2, columnspan=1) tr = MyThread() tr.setDaemon(True) tr.start() root.mainloop()except Exception as e: print(‘错误信息‘, e) time.sleep(60)

效果如下:

python写一个随机点名软件

python随机点名程序 图形化_python写一个随机点名软件,python随机点名,最近有个随机点名软件...相关推荐

  1. python伪造邮件发件地址_python写一个邮箱伪造脚本

    前言: 原本打算学php MVC的思路然后写一个项目.但是贼恶心, 写不出来.然后就还是用python写了个邮箱伪造. 0x01 第一步先去搜狐注册一个邮箱 然后,点开设置,开启SMTP服务. 当然你 ...

  2. python随机点名程序 图形化,python写一个随机点名软件的实例

    最近有个随机点名软件的需求,故写了一个,上代码:github地址 # -*- coding: utf-8 -*- # @Time : 18-12-31 下午4:21 # @Author : Felix ...

  3. python期末大作业-图形化爬虫

    爬虫部分 数据库部分 ui部分 文件系统部分 数据简单分析部分 结果演示: 上述展示的是主页面,当点击提交的时候会进行线程的开启来进行数据的爬取,当然,在点击的时候也会有简单的检验功能,url的填写要 ...

  4. Python代写CSSE1001/7030 python程序作业、代做python CSSE1001/7030程序作业、 代写CSSE1001/7030 python 作业...

    Python代写CSSE1001/7030 python程序作业.代做python CSSE1001/7030程序作业. 代写CSSE1001/7030 python 作业 Uno++ Assignm ...

  5. 怎么用python制作随机点名软件_python写一个随机点名软件的实例

    最近有个随机点名软件的需求,故写了一个,上代码:github地址 # -*- coding: utf-8 -*- # @Time : 18-12-31 下午4:21 # @Author : Felix ...

  6. python迷宫万花筒代码_用Python3写一个走迷宫的小程序(图形化:matplotlib,dfs,prim)...

    先看一下动态效果图(慢放): 首先生成迷宫: 主要用了两个算法:Prim和dfs 总结:Prim生成的比较像真正的迷宫,所以默认用了Prim生成迷宫 先输入n,m,会生成一个迷宫(prim生成),然后 ...

  7. AidLearning中使用Wizard布局python应用程序图形化界面

    Wizard可以快速构建应用程序的图形化界面,下图是Wizard的工作区域介绍. 第一步:打开AidLearning中的Wizard工具.单击第一个Layout_H容器,选中容器,在右侧属性窗口中将容 ...

  8. python文件分发_python 写一个文件分发小程序

    一.概述 该小程序实现从源端到目标端的文件一键拷贝,源端和目标段都在一台电脑上面,只是目录不同而已 二.参数文件说明 1. settings.txt的说明 a. 通过配置settings.txt,填源 ...

  9. 用python编写一个点餐程序_Python写一个自动点餐程序

    原博文 2019-08-09 10:45 − # Python写一个自动点餐程序 ## 为什么要写这个 公司现在用meican作为点餐渠道,每天规定的时间是早7:00-9:40点餐,有时候我经常容易忘 ...

最新文章

  1. linux 开启独立iptables日志
  2. [ZJOI2008][BZOJ1036] 树的统计count
  3. 《Pro Ogre 3D Programming》 读书笔记 之 第七章 资源管理(转)
  4. 仿vue的前端自定义cmd命令拉取项目脚手架
  5. Charles使用1
  6. 如何调整html中音乐播放器的大小,html5实现在线响应式音乐播放器
  7. C语言islower函数介绍、示例和实现
  8. unity3d与eclipse集成开发android应用
  9. Nginx根据url参数匹配跳转
  10. java2实用教程第五版耿祥义电子版_Java2实用教程(第5版)答案_耿祥义
  11. C语言冒泡排序(函数版)
  12. MT7621方案GPIO介绍
  13. OpenDaylight VTN 项目指南
  14. Android解析XML文件(assets目录)
  15. LTspice基础教程-033.绘制电容阻抗特性曲线
  16. 【朝花夕拾】Android自定义View篇之(一)View绘制流程
  17. matlab数字图像处理:时空域图像增强
  18. 开源风暴吞噬AI界?从Stable Diffusion的爆火说起
  19. express+request实现-图夫在线爬取网页图片
  20. 简单快速的血管增强算法

热门文章

  1. 01.Mac默认zsh
  2. Springboot 关闭或绕过 jwt用户验证
  3. 【Linux学习笔记(十八)】之 压缩,打包 zip,gz, bz2, tar,tar.gz, tar.bz2
  4. 黑客零基础入门:手把手带你实现简单的QQ/邮件攻击,注册表/系统安全防护,学不会请给我只因木马
  5. oracle12.2+asm进程,Oracle12,1,2,0版本中遇到bug25211209
  6. 灵感:从想法的天空到现实的地面
  7. 安装 en_core_web_sm-3.0.0
  8. linux7防火墙端口映射,使用centos7防火墙firewall实现端口映射,实现远程内网3389桌面...
  9. Unity Shader - 切线空间的法线贴图应用(T2W W2T)
  10. Stack Overflow技术报告给开发者哪些启示