• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

20190927 欢乐抽奖小程序

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文主要思路:使用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 = []

with open(\'student_list.txt\',\'r+\',encoding=\'utf-8\') as s :

    students = s.readlines()

# 变量,用来控制是否滚动显示学生名单

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()

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
小程序------样式(九)发布时间:2022-07-18
下一篇:
适用于ATI卡的GPU计算MD5的小程序源码,基于AMD APP SDK开发发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap