用python中的tkinter制作一个可以控制开始和结束的随机点名
时间: 2024-04-30 09:20:42 浏览: 77
基于python和tkinter实现的随机点名程序
3星 · 编辑精心推荐
好的,以下是一个简单的用 Tkinter 实现的随机点名程序,可以控制开始和结束:
```python
import tkinter as tk
import random
class RandomNamePicker:
def __init__(self, names):
self.names = names
self.is_picking = False
self.root = tk.Tk()
self.root.title("Random Name Picker")
# 创建界面组件
self.name_var = tk.StringVar()
self.name_var.set("点击“开始”按钮开始抽取")
self.name_label = tk.Label(self.root, textvariable=self.name_var, font=("Arial", 24), padx=50, pady=50)
self.start_button = tk.Button(self.root, text="开始", font=("Arial", 24), command=self.start)
self.stop_button = tk.Button(self.root, text="结束", font=("Arial", 24), command=self.stop)
self.stop_button.config(state=tk.DISABLED)
# 布局界面组件
self.name_label.pack()
self.start_button.pack(side=tk.LEFT, padx=20)
self.stop_button.pack(side=tk.LEFT, padx=20)
def start(self):
if not self.is_picking:
self.is_picking = True
self.start_button.config(state=tk.DISABLED)
self.stop_button.config(state=tk.NORMAL)
self.pick_name()
def stop(self):
self.is_picking = False
self.start_button.config(state=tk.NORMAL)
self.stop_button.config(state=tk.DISABLED)
def pick_name(self):
if self.is_picking:
name = random.choice(self.names)
self.name_var.set(name)
self.root.after(100, self.pick_name)
def run(self):
self.root.mainloop()
if __name__ == '__main__':
names = ["张三", "李四", "王五", "赵六", "钱七"]
picker = RandomNamePicker(names)
picker.run()
```
在这个程序中,我们使用了 Tkinter 创建了一个窗口,里面包含了一个 Label、一个开始按钮和一个结束按钮。当点击开始按钮时,程序会不断地从名字列表中随机抽取一个名字,并将其显示在 Label 中;当点击结束按钮时,程序停止抽取名字。
在程序运行过程中,我们使用了 `self.root.after(100, self.pick_name)` 来实现定时器,每 100 毫秒调用一次 `pick_name` 方法,从而实现不断地随机抽取名字的效果。
阅读全文