当前位置:首页 / 文章测试 / 战锤点名

战锤点名

开始打字练习

import tkinter as tk

import random

import time

from tkinter import messagebox, font

class RandomSelector:

def __init__(self, root):

# 设置主窗口

self.root = root

self.root.title("随机抽人程序")

self.root.geometry("600x400")

self.root.resizable(False, False)

self.root.configure(bg="#f0f0f0")

# 同学名单

self.students = ["暗黑天使","赤血龙子","帝皇之子","钢铁勇士",

"白色疤痕","帝国之拳","太空野狼","午夜领主",

"圣血天使","羽蛇卫士","钢铁之手","吞世之勇","极限战士",

"死亡守卫","千疮之子","影月苍狼","怀言者",

"火蜥蜴","暗鸦守卫","九头蛇"]

self.is_rolling = False

self.roll_interval = 50 # 滚动间隔时间(毫秒)

# 创建字体

self.title_font = font.Font(family="SimHei", size=18, weight="bold")

self.name_font = font.Font(family="SimHei", size=36, weight="bold")

self.btn_font = font.Font(family="SimHei", size=14)

# 创建界面元素

self.create_widgets()

def create_widgets(self):

# 标题标签

title_label = tk.Label(

self.root,

text="让战团选择你",

font=self.title_font,

bg="#f0f0f0",

fg="#333333"

)

title_label.pack(pady=20)

# 显示选中人员的框架

display_frame = tk.Frame(self.root, width=500, height=150, bg="white", relief="ridge", bd=2)

display_frame.pack(pady=20)

display_frame.pack_propagate(False) # 防止框架大小被内容改变

# 显示名字的标签

self.name_label = tk.Label(

display_frame,

text="准备开始",

font=self.name_font,

bg="white",

fg="#e74c3c"

)

self.name_label.pack(expand=True)

# 按钮框架

btn_frame = tk.Frame(self.root, bg="#f0f0f0")

btn_frame.pack(pady=30)

# 开始/停止按钮

self.start_btn = tk.Button(

btn_frame,

text="开始抽取",

font=self.btn_font,

width=12,

height=1,

bg="#3498db",

fg="white",

command=self.toggle_rolling

)

self.start_btn.pack(side=tk.LEFT, padx=10)

# 重置按钮

reset_btn = tk.Button(

btn_frame,

text="重置",

font=self.btn_font,

width=12,

height=1,

bg="#95a5a6",

fg="white",

command=self.reset

)

reset_btn.pack(side=tk.LEFT, padx=10)

# 显示名单按钮

list_btn = tk.Button(

btn_frame,

text="显示名单",

font=self.btn_font,

width=12,

height=1,

bg="#2ecc71",

fg="white",

command=self.show_list

)

list_btn.pack(side=tk.LEFT, padx=10)

def toggle_rolling(self):

"""切换滚动状态(开始/停止)"""

if self.is_rolling:

# 停止滚动

self.is_rolling = False

self.start_btn.config(text="开始抽取", bg="#3498db")

else:

# 开始滚动

self.is_rolling = True

self.start_btn.config(text="停止抽取", bg="#e74c3c")

self.roll_names()

def roll_names(self):

"""滚动显示名字"""

if self.is_rolling:

# 随机选择一个名字

random_name = random.choice(self.students)

self.name_label.config(text=random_name)

# 继续滚动

self.root.after(self.roll_interval, self.roll_names)

def reset(self):

"""重置程序"""

self.is_rolling = False

self.name_label.config(text="准备开始")

self.start_btn.config(text="开始抽取", bg="#3498db")

def show_list(self):

"""显示所有同学名单"""

list_str = "班级同学名单:\n\n" + "\n".join(self.students)

messagebox.showinfo("同学名单", list_str)

if __name__ == "__main__":

root = tk.Tk()

app = RandomSelector(root)

root.mainloop()

声明:以上文章均为用户自行发布,仅供打字交流使用,不代表本站观点,本站不承担任何法律责任,特此声明!如果有侵犯到您的权利,请及时联系我们删除。