幸运抽奖工具 - 随机选择成员,支持手动添加和导入名单
import random import tkinter as tk from tkinter import messagebox, filedialog
初始化成员列表和已选列表
members = [] selected = []
def input_members(): input_window = tk.Toplevel() input_window.title("Input Members")
def add_member():
member = entry.get()
if member != '':
members.append(member) # 添加到成员列表
entry.delete(0, tk.END)
def finish_input():
input_window.destroy()
def import_members():
file_path = filedialog.askopenfilename(defaultextension='.txt', filetypes=[('文本文件', '*.txt')])
if file_path:
with open(file_path, 'r', encoding='utf-8') as f:
for line in f:
member = line.strip()
if member != '':
members.append(member)
label = tk.Label(input_window, text="Enter member names:")
label.pack()
entry = tk.Entry(input_window)
entry.pack()
add_button = tk.Button(input_window, text="Add Member", command=add_member)
add_button.pack()
import_button = tk.Button(input_window, text="Import Members", command=import_members)
import_button.pack()
finish_button = tk.Button(input_window, text="Finish", command=finish_input)
finish_button.pack()
def remove_selected(): for s in selected: if s in members: members.remove(s) # 从成员列表中删除已选择的成员
def pick_member(): if len(members) == 0: messagebox.showinfo("Pick Member", "All members have been selected!") return False selected_member = random.choice(members) # 从成员列表中随机选择一个成员 selected.append(selected_member) # 添加到已选择列表 members.remove(selected_member) # 从成员列表中删除已选择的成员 messagebox.showinfo("Pick Member", f"Congratulations {selected_member} has been selected!") return True
def show_members(): members_window = tk.Toplevel() members_window.title("Members")
members_label = tk.Label(members_window, text="Members:")
members_label.pack()
members_listbox = tk.Listbox(members_window)
for member in members:
members_listbox.insert(tk.END, member)
members_listbox.pack()
selected_label = tk.Label(members_window, text="Selected Members:")
selected_label.pack()
selected_listbox = tk.Listbox(members_window)
for member in selected:
selected_listbox.insert(tk.END, member)
selected_listbox.pack()
def main(): main_window = tk.Tk() main_window.title("Lucky Draw Tool")
def help_command():
messagebox.showinfo("Help", "Available commands:
" " help - Show help " " pick - Pick a member " " remove - Remove selected members " " show - Show members and selected members " " quit - Quit the program")
def pick_command():
if pick_member():
return
else:
main_window.quit()
def remove_command():
remove_selected()
messagebox.showinfo("Remove Selected", "Selected members have been removed!")
def show_command():
show_members()
def quit_command():
main_window.quit()
help_button = tk.Button(main_window, text="Help", command=help_command)
help_button.pack()
pick_button = tk.Button(main_window, text="Pick", command=pick_command)
pick_button.pack()
remove_button = tk.Button(main_window, text="Remove", command=remove_command)
remove_button.pack()
show_button = tk.Button(main_window, text="Show", command=show_command)
show_button.pack()
quit_button = tk.Button(main_window, text="Quit", command=quit_command)
quit_button.pack()
main_window.mainloop()
if name == "main": input_members() main()
原文地址: https://www.cveoy.top/t/topic/pHbv 著作权归作者所有。请勿转载和采集!