【python】用tkinter实现一个能随机抽取n个人的界面

  • Post author:
  • Post category:python



这篇文章主要介绍了python用tkinter实现一个能进行随机抽取n个人名的界面,文中通过示例代码介绍的非常详细,具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧




前言


  1. 文章用到 tkinter用于界面美化
  2. datatime 实时显示时间
  3. random 随机抽取人名


提示:以下是本篇文章正文内容,下面案例可供参考



一、random库的简单介绍?


import random

print(random.randint(1,10))        # 产生 1 到 10 的一个整数型随机数  
print(random.random())             # 产生 0 到 1 之间的随机浮点数
print(random.uniform(1.1,5.4))     # 产生  1.1 到 5.4 之间的随机浮点数,区间可以不是整数
print(random.choice('today'))      # 从序列中随机选取一个元素
print(random.randrange(1,100,2))   # 生成从1到100的间隔为2的随机整数

a=[1,3,5,6,7]                # 将序列a中的元素顺序打乱
random.shuffle(a)
print(a)



二、功能实现步骤



1.导入库


代码如下(示例):

import datetime
from tkinter import *
import random



2.编写类(获取数据、随机数字、实时时间)


代码如下(示例):

class random_name_class(object):
    # 获取数据,班级人名
    def from_data(self):
        with open('roll_call.txt', encoding='utf-8') as file_obj:
            contents = file_obj.read()
            stuff = contents.split(' ')
        return stuff

    # 随机数字-开启
    def start_execute(self):
        global time
        name=self.from_data()
        print(name)
        a = random.sample(name, 5)
        num["text"] = a
        # num["text"] = random.randint(1,1000)
        time = num.after(1, self.start_execute)
        print(time)

    # 随机数字-关闭
    def stop_execute(self):
        num.after_cancel(time)

    def uptime(self):
        global TimeLabel
        TimeLabel.config(text=datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
        root.after(200, self.uptime)


注意:此处数据在roll_call.txt文件中,人名之间以空格隔开,效果如下:

在这里插入图片描述



3.tkinter实现界面显示


代码如下(示例):

# 根窗口创建
root = Tk()
root.title("随机抽取")
root.geometry("600x400")
#标题
Label_title =Label(root,text = '随机抽取五位同学',font=('Arial','20'),fg='blue',height=2).pack()
num = Label(root, text="看看是哪五位", bg='yellow',font="微软雅黑 18 bold",width = 500,height = 2)
num.pack()

# 框架控件创建
buttonbox = Frame(root)
buttonbox.pack(pady=50)

# 按钮控件创建
name_class=random_name_class()
start = Button(buttonbox, text="开始",font="微软雅黑 16", relief="groove", command=name_class.start_execute)
start.pack(side=LEFT, padx=10)
stop = Button(buttonbox, text="暂停", font="微软雅黑 16",relief="groove", command=name_class.stop_execute)
stop.pack(side=RIGHT, padx=10)

# 显示时间
TimeLabel = Label(font='微软雅黑 12',text = "%s" %(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),))
TimeLabel.pack(fill=BOTH,padx=10)
root.after(100,name_class.uptime())

root.mainloop()




4.界面效果

在这里插入图片描述




总结


以上就是今天要讲的内容,本文实现了从数据中随机抽取5个同学的名字,界面十分直观,同学们可自行修改代码实现m个数据随机抽取n个人,只需修改少数代码即可。



版权声明:本文为weixin_49298240原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。