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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录