应朋友所邀,制作一个随机点名器,放上来做一个简单的记录。
窗口设置放在settings.py,窗口大小等调整放在这里
read_name.py用来读取文件内的名字,
num.txt内名字分行排列
启动:回车键快捷启动
settings.py
class Setting:
width = 600 # 窗口宽度
height = 460 # 窗口高度
x = 100 # 窗口坐标
y = 100
refresh_rate = 100 # 刷新速度
read_name.py
def read_file():
list_names = []
with open('num.txt', 'r') as f:
list_all = f.readlines()
for i in list_all:
list_names.append(i.strip())
return list_names
dmq.py
import tkinter as tk
from settings import Setting
import read_name
import random
flag_0 = False # 默认初始状态为 False
flag_1 = False
list_names = read_name.read_file()
def chioce_one():
global flag_0, flag_1
flag_0 = True
name1 = random.choice(list_names)
var1.set(name1)
label_name1.update()
def gettime():
global list_names, flag_0, flag_1
if flag_0 == False:
# 获取新的姓名
name1 = random.choice(list_names)
var1.set(name1)
# label_name1.update()
# 每隔 一定时长 调用一次 gettime()函数来获取新的名字
window.after(Setting.refresh_rate, gettime)
# else:
# if flag_1 == True:
# flag_0 = False
def s_e():
global flag_0, flag_1
b_n = var2.get()
if b_n == '开始':
if flag_1 == False:
flag_0 = False
gettime()
var2.set('结束')
# print(flag_0, 'flag_0')
# print(flag_1, 'flag_1')
else:
chioce_one()
var2.set('开始')
window = tk.Tk()
window.title('随机点名器')
window.geometry('%dx%d+%d+%d' % (Setting.width, Setting.height, Setting.x, Setting.y))
window.resizable(0, 0)
label_title = tk.Label(window,
text='随机点名器', # 使用 textvariable 替换 text, 因为这个可以变化
fg='red', font=('黑体', 48))
label_title.place(x=130, y=40)
var1 = tk.StringVar() # 这时文字变量储存器
label_name1 = tk.Label(window,
textvariable=var1, # 使用 textvariable 替换 text, 因为这个可以变化
bg='green', fg='yellow', font=('宋体', 48), width=19, height=3)
label_name1.place(x=0, y=130)
var2 = tk.StringVar()
var2.set('开始')
button_rand = tk.Button(window,
textvariable=var2, font=('黑体', 18), # 显示在按钮上的文字
width=15, height=2,
command=s_e) # 点击按钮式执行的命令
button_rand.place(x=200, y=360) # 按钮位置
window.mainloop()