Python编写抽奖式随机提问程序
本文主要思路:使用tkinter编写界面,使用3个Label组件和多线程技术实现学生名单的滚动显示。
import tkinter
import tkinter.messagebox
import random
import threading
import itertools
import time
root = tkinter.Tk()
#窗口标题
root.title('随机提问')
#窗口初始大小和位置
root.geometry('260x180+400+300')
#不允许改变窗口大小
root.resizable(False, False)
#关闭程序时执行的函数代码,停止滚动显示学生名单
def closeWindow():
root.flag = False
time.sleep(0.1)
root.destroy()
root.protocol('WM_DELETE_WINDOW', closeWindow)
# 模拟学生名单,可以加上数据库访问接口,从数据库中读取学生名单
students = ['张三', '李四', '王五', '赵六', '周七', '钱八']
# 变量,用来控制是否滚动显示学生名单
root.flag = False
def switch():
root.flag = True
while root.flag:
# 随机打乱学生名单
t = students[:]
random.shuffle(t)
t = itertools.cycle(t)
# 滚动显示
lbFirst['text'] = lbSecond['text']
lbSecond['text'] = lbThird['text']
lbThird['text'] = next(t)
# 数字可以修改,控制滚动速度
time.sleep(0.1)
def btnStartClick():
# 每次单击“开始”按钮启动新线程
t = threading.Thread(target=switch)
t.start()
btnStart = tkinter.Button(root, text='开始', command=btnStartClick)
btnStart.place(x=30, y=10, width=80, height=20)
def btnStopClick():
# 单击“停”按钮结束滚动显示
root.flag = False
time.sleep(0.3)
tkinter.messagebox.showinfo('恭喜', '本次中奖:'+lbSecond['text'])
btnStop = tkinter.Button(root, text='停', command=btnStopClick)
btnStop.place(x=150, y=10, width=80, height=20)
# 用来滚动显示学生名单的3个Label组件
# 可以根据需要进行添加,但要修改上面的线程函数代码
lbFirst = tkinter.Label(root, text='')
lbFirst.place(x=80, y=60, width=100, height=20)
# 红色Label组件,表示中奖名单
lbSecond = tkinter.Label(root, text='')
lbSecond['fg'] = 'red'
lbSecond.place(x=80, y=90, width=100, height=20)
lbThird = tkinter.Label(root, text='')
lbThird.place(x=80, y=120, width=100, height=20)
# 启动tkinter主程序
root.mainloop()
运行视频:
Python编写抽奖式随机提问程序相关推荐
- python抽奖程序_Python编写抽奖式随机提问程序
本文主要思路:使用tkinter编写界面,使用3个Label组件和多线程技术实现学生名单的滚动显示. import tkinter import tkinter.messagebox import r ...
- python漂亮界面 数独游戏源代码_使用Python编写数独游戏自动出题程序
原标题:使用Python编写数独游戏自动出题程序 数独是一个很好玩的游戏,可以锻炼推理能力.下面的代码可以自动生成数独游戏题目. fromrandom importshuffle, randrange ...
- Python编写的桌面图形界面程序实现更新检测和下载安装
在Python中我们有很多种方案来编写桌面图形用户界面程序,譬如内置的 Tkinter .强大的 PyQt5 和 PySide2 ,还有 wxPython .借助这些或内置或第三方的模块,我们可以轻松 ...
- 使用python编写一个简易的打折程序
使用python编写一个简易的打折程序
- 利用Python编写一个高斯正反算程序
一.前言 这次的高斯正反算程序是使用的Python编写的. 环境信息是:Win10.PyCharm 2021.3.1.PySide6 6.3.1.Python 3.9.9,基于QT Designer设 ...
- 使用Python编写数独游戏自动出题程序
数独是一个很好玩的游戏,可以锻炼推理能力.下面的代码可以自动生成数独游戏题目. from random import shuffle, randrange def generate(): # ...
- 用python 编写100内加减乘除的程序
可以使用Python编写一个简单的程序,来实现在100以内的加减乘除. 下面是一个例子,实现了在100以内两个数字的加减乘除: importrandom# 随机生成两个数字 a = random.ra ...
- 基于python的天气预报系统,基于python编写的天气抓取程序
以前一直使用中国天气网的天气预报组件都挺好,可是自从他们升级组件后数据加载变得非常不稳定,因为JS的阻塞常常导致网站打开速度很慢.为了解决这个问题决定现学现用python编写一个抓取程序,每天定时抓取 ...
- python编写抢座位软件_程序员硬核Python抢票教程”,帮你抢回家车票
盼望着,盼望着,春节的脚步近了,然而,每年到这个时候,最难的,莫过于一张回家的火车票. 据悉,今年春运期间,全国铁路发送旅客人次同比将增长8.0%,达到4.4亿人次,2020年铁路春运自1月10日开始 ...
最新文章
- fatal error LNK1123: 转换到 COFF 期间失败
- .NET 不规则、可改变大小、边框半透明窗体设计
- 76 从OpenCV学习C++ 高级语言特性
- REM重复制造MFBF功能
- 44、生鲜电商平台-Java后端生成Token架构与设计详解
- lvm 多个硬盘合成一个_「ECS最佳实践」基于多块云盘构建LVM逻辑卷
- smarty模板概念及应用场合
- 博世豪掷10亿欧元德国建半导体工厂,要掌握自动驾驶芯片化核心竞争力?
- 【youcans 的 OpenCV 例程 200 篇】104. 运动模糊退化模型
- CSS 元素的定位之相对定位 position: relative
- git钩子放服务器_如何使用Git 钩子来自动化开发和部署任务
- c++获取macos中的uuid的两种方式
- hive中的lateral view的解析
- 用74l138实现一个一位全减器_用react实现一个仿ionic button组件
- 【Delphi】Delphi11.1 版本 Android SDK 更新步骤
- ETERM操作和错误集合
- ios 打包证书.p12 .mobileprovision 制作详细流程
- 联机(脱机)手写汉字识别
- 4.19@深圳 | 品牌出海正当时,如何更有方向感?
- 知识点(1):OSI网络模型
热门文章
- oracle存储怎么调试tord,接口_数据交换应用指导(20页)-原创力文档
- yolo系列外文翻译_Yolo系列其三:Yolo_v3
- qt 二次开发 研华daq_研华DAQ数据采集卡编程
- dense sift matlab,一个 Dense SIFT 算法的 matlab 实现 | 学步园
- php连接access带密码,phpadodb连接带密码access数据库实例,测试成功
- vuex获取php数据,Nuxt中如何使用Vuex-Store异步获取数据
- ORACLE 正值表达式
- MySQL索引类型及创建
- org.mariadb.jdbc.internal.com.send.authentication.SendGssApiAuthPacket could not be instantiated
- mysql导出数据不锁表_mysqldump锁表出错及解决方法