pythontkinter应用之抽奖程序(代码片段)

张牧之! 张牧之!     2022-12-21     659

关键词:

tkinter应用之抽奖程序

使用tkinter实现抽奖程序,使用时可以修改抽奖名单,然后点击‘开始’和‘停止’按钮来控制界面上的名单滚动实现抽奖功能。当然该程序也可以用于上课时随机提问。

实现效果


程序代码

import itertools
import random
import threading
import time
import tkinter
import tkinter.messagebox

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
    #随机打乱学生名单
    t = students[:]
    random.shuffle(t)
    t = itertools.cycle(t)

    while root.flag:
        #滚动显示
        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['state'] = 'disabled'
    btnStop['state'] = 'normal'

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'])
    btnStart['state'] = 'normal'
    btnStop['state'] = 'disabled'

btnStop = tkinter.Button(root,text='停止',command=btnStopClick)
btnStop['state'] = 'disabled'
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)

#启动主程序
root.mainloop()

pythontkinter应用之简易计算器(代码片段)

tkinter应用之简易计算器实现效果程序代码实现效果程序代码importreimporttkinterimporttkinter.messageboxroot=tkinter.Tk()#设置窗口的大小和位置root.geometry('300x270+400+100')#不允许改变窗口的大小root.resizable(False,False)#设置窗口标 查看详情

pythontkinter应用之用户登录界面(代码片段)

tkinter应用之用户登录界面实现效果程序代码用户的登录界面介乎无处不在,用户输入用户名,账号和密码后,系统进行验证,通过验证才可以进行后续的操作。一般而言,用户密码都是经过安全哈希算法和加... 查看详情

pythontkinter应用之简易计算器(代码片段)

tkinter应用之简易计算器实现效果程序代码实现效果程序代码importreimporttkinterimporttkinter.messageboxroot=tkinter.Tk()#设置窗口的大小和位置root.geometry('300x270+400+100')#不允许改变窗口的大小root.resizable(False,False)#设置窗口标... 查看详情

pythontkinter应用之用户登录界面(代码片段)

tkinter应用之用户登录界面实现效果程序代码用户的登录界面介乎无处不在,用户输入用户名,账号和密码后,系统进行验证,通过验证才可以进行后续的操作。一般而言,用户密码都是经过安全哈希算法和加... 查看详情

如何从pythontkinter应用程序中捕获任何输出到控制台?(代码片段)

我有一个大型的多文件,Tkinter应用程序,具有无数的功能,然后与Pyinstaller一起打包为可执行文件。它包含预期事件的错误处理。但是,它没有任何错误处理意外事件。在将应用程序打包为可执行文件之前运行应用程序时,会向... 查看详情

简单python快乐之旅之:python基础语法之gui专题(代码片段)

文章目录1.Pythontkinter设置特定或固定的窗口大小1.1.示例一:在Pythontkinter中设置窗口大小1.2.设置窗口大小1.3.小结2.Pythontkinter按钮例子2.1.Pythontkinter按钮2.2.示例一:使用tkinter库的按钮2.3.小结3.按钮点击调用函数3.1.按钮点... 查看详情

按钮点击后,pythontkinter在框架中显示文本(代码片段)

作为一个Python新手,我试图用tkinter创建一个应用程序。我用下拉菜单制作了一个窗口。现在,我希望实现这一点,当您从下拉菜单中单击按钮时,文本将显示在右侧框架中或底部。接下来,当您按下下一个按钮时,屏幕上将显... 查看详情

已选择pythontkinter验证文件(代码片段)

我正在Python3.7中使用Tkinter,作为一种让用户使用askopenfilename窗口选择文件的方法。我也有一个“运行”按钮。我想检查一下是否已打开文件。如果没有打开任何文件,我会收到一条错误消息,并且如果选择了文件,则希望该程... 查看详情

pythontkinter的(代码片段)

查看详情

pythontkinter的(代码片段)

查看详情

pythontkinter上的多窗口(代码片段)

查看详情

pythontkinter声音测试(.wav)(代码片段)

查看详情

c#程序设计之windows应用程序进阶(代码片段)

C#程序设计之windows应用程序进阶题目描述编写一个使用文件对话框的项目代码Form1.csusingSystem;usingSystem.Drawing;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Windows.Forms;usingSystem.Data;namespaceModeDialog ///< 查看详情

androidapi指南之应用程序窗口小部件(代码片段)

基础知识在清单中声明应用程序窗口小部件添加AppWidgetProviderInfo元数据创建应用程序窗口小部件布局为应用程序窗口小部件添加边距使用AppWidgetProvider类接收应用程序窗口小部件的广播Intent固定的应用程序窗口小部件创建一个应... 查看详情

在pythontkinter中为事件创建日历视图[关闭](代码片段)

...我可以选择一天,看看我当天要做的事情,是时候使用了pythontkinter。目前在我的数据库中,我有日期,开始时间和结束时间的事件。请注意,我正在使用python3.任何人都可以给我一个线索,如何做到这一点,甚至发送一个链接到... 查看详情

评论区抽奖程序(代码片段)

文章目录评论区抽奖程序1.思路2.准备3.实现爬虫爬取数据4.随机数模块抽取5.main函数6.大功告成评论区抽奖程序这个小程序很简陋,没什么难度1.思路使用爬虫爬取评论区数据随机抽取一名幸运用户思路很简单,实现也很... 查看详情

评论区抽奖程序(代码片段)

文章目录评论区抽奖程序1.思路2.准备3.实现爬虫爬取数据4.随机数模块抽取5.main函数6.大功告成评论区抽奖程序这个小程序很简陋,没什么难度1.思路使用爬虫爬取评论区数据随机抽取一名幸运用户思路很简单,实现也很... 查看详情

python之文件处理(代码片段)

...文件操作一、介绍计算机分为:计算机硬件、操作系统、应用程序三个部分我们用Python或者其他语言编写的应用程序若想要把数据永久的保存下来,必须保存在硬盘中,这就涉及应用程序要操作硬件,众所周知,应用程序是无法... 查看详情