本文主要思路:使用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编写抽奖式随机提问程序相关推荐

  1. Python编写抽奖式随机提问程序

    本文主要思路:使用tkinter编写界面,使用3个Label组件和多线程技术实现学生名单的滚动显示. import tkinter import tkinter.messagebox import r ...

  2. python语言 表白程序_python编写的GUI表白小程序

    # Tkinter是Python的标准GUI(图形用户界面)库 ,Python使用Tkinter可以快速的创建GUI应用程序 from tkinter import * from tkinter im ...

  3. python在线翻译小程序_Python爬虫学习之翻译小程序

    本次博客分享的内容为基于有道在线翻译实现一个实时翻译小程序,本次任务是参考小甲鱼的书<零基础入门学习Python>完成的,书中代码对于当前的有道词典并不适用,使用后无法实现翻译功能,在网上 ...

  4. python表白神器_Python编写表白神器!向你的女神告白吧!!

    马上就是七夕情人节了,送什么给你女神呢.鲜花什么的还不够!在写一个告白程序,向女神告白!让她看看你的爱意!哈哈哈哈! 程序和代码下载地址:点击下载 Python简介 Python是纯粹的自由软件, 源 ...

  5. Java制作一个盒子程序_编写一个简单的Java程序,模拟计算器的功能。

    提问:编写一个简单的Java程序,模拟计算器的功能. 网友回答: 程序参考: import java.awt.*; import java.awt.event.ActionEvent; import ...

  6. python七夕快乐_python编写简单抽奖系统

    python编写简单抽奖系统 #!/usr/bin/env python #coding=utf-8 from Tkinter import * import time import random c ...

  7. python 抽奖器_python编写实现抽奖器

    本文实例为大家分享了python编写实现抽奖器的具体代码,供大家参考,具体内容如下 # coding=utf-8 import sys import os import openpyxl if sys ...

  8. python抽奖代码_python编写实现抽奖器代码示例

    本篇文章小编给大家分享一下python编写实现抽奖器代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. # coding=utf-8 import ...

  9. python中用函数编写程序_python编写程序,在程序中定义一个函数,计算1+1/2+1/3+1/4+……+1/n...

    python语言编写的程序需要运行库.Python(英语发音:/?pa?θ?n/),是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年发明,第一个公开发行版发行于 ...

最新文章

  1. 删除input框type=number时,默认的上下小箭头
  2. 框架中建立浮动框架_建立代理,而不是框架
  3. 链表题目--1 删除链表中所有等于val的值
  4. 从委托而起(二)认识委托
  5. 【CodeForces - 1038B 】Non-Coprime Partition (构造,数组特征)
  6. 【Codeforces - 632C】The Smallest String Concatenation (对string巧妙排序)
  7. 大一matlab知识整理,MATLAB基础课程 第二章 MATLAB绘图知识(5)
  8. Python循环嵌套应用案例一则:判断丑数
  9. java 标准_Java标准注解
  10. asp.net数据绑定之Eval和Bind 和等区别
  11. spark指定类型+列名 将RDD转化成DataFrame
  12. Learn ZYNQ (7)
  13. 【实习周记】ArrayMap源码分析
  14. Optimizing graphics rendering in Unity games
  15. WPS-Word中换行符、回车符删除不掉怎么办?某一个空行删不掉
  16. 《关键信息基础设施安全保护条例》来了!完善网络安全体系 华云数据构筑云上安全屏障
  17. [spring boot] 我的图床我做主,自己动手写一个shareX图床
  18. 老司机都懂的x件事,一般人我不告诉他
  19. 【前端html页面数据导出为pdf文件】
  20. 【亲测有效】解决 Ubuntu 虚拟机无法共享文件夹的问题

热门文章

  1. C# 值类型 引用类型 作为参数传递区别
  2. 面向对象之信息传递为何是调用方法
  3. PAT乙级(1030 完美数列)
  4. 字符串在Java中_字符和字符串在Java中的旅程
  5. git进入项目目录 windows_Windows下Git 怎么整个文件夹目录上传到代码仓库(不论GitHub、GitLab、Gitee、DevCloud)...
  6. 怎么测试服务器端口是否对外开放_12个经典性能测试人员面试题
  7. 【连载】如何掌握openGauss数据库核心技术?秘诀一:拿捏SQL引擎(2)
  8. 单图说TDSQL;OceanBase 2.2 事务引擎核心功能;穿云箭2.0版发布;RMAN DUPLICATE配置19C DG;外键上有无索引的影响;MySQL8.0 索引新功能;GaussDB C
  9. 执行了rm-f,除了跑路,如何恢复?
  10. 农业银行数据库最佳实践和发展规划