Lucky Draw Tool: Random Member Picker with GUI Input
import\u0020random\nimport\u0020tkinter\u0020as\u0020tk\nfrom\u0020tkinter\u0020import\u0020messagebox\n\n#\u0020Initialize\u0020members\u0020and\u0020selected\u0020lists\nmembers\u0020=\u0020[]\nselected\u0020=\u0020[]\n\n\ndef\u0020input_members():\n\u0020\u0020input_window\u0020=\u0020tk.Toplevel()\n\u0020\u0020input_window.title("Input\u0020Members")\n\n\u0020\u0020def\u0020add_member():\n\u0020\u0020\u0020\u0020member\u0020=\u0020entry.get()\n\u0020\u0020\u0020\u0020if\u0020member\u0020!=\u0020"":\n\u0020\u0020\u0020\u0020\u0020\u0020members.append(member)\n\u0020\u0020\u0020\u0020\u0020\u0020entry.delete(0,\u0020tk.END)\n\n\u0020\u0020def\u0020finish_input():\n\u0020\u0020\u0020\u0020input_window.destroy()\n\n\u0020\u0020label\u0020=\u0020tk.Label(input_window,\u0020text="Enter\u0020member\u0020names:")\n\u0020\u0020label.pack()\n\n\u0020\u0020entry\u0020=\u0020tk.Entry(input_window)\n\u0020\u0020entry.pack()\n\n\u0020\u0020add_button\u0020=\u0020tk.Button(input_window,\u0020text="Add\u0020Member",\u0020command=add_member)\n\u0020\u0020add_button.pack()\n\n\u0020\u0020finish_button\u0020=\u0020tk.Button(input_window,\u0020text="Finish",\u0020command=finish_input)\n\u0020\u0020finish_button.pack()\n\n\ndef\u0020manual_input():\n\u0020\u0020input_window\u0020=\u0020tk.Toplevel()\n\u0020\u0020input_window.title("Manual\u0020Input")\n\n\u0020\u0020def\u0020add_member():\n\u0020\u0020\u0020\u0020member\u0020=\u0020entry.get()\n\u0020\u0020\u0020\u0020if\u0020member\u0020!=\u0020"":\n\u0020\u0020\u0020\u0020\u0020\u0020members.append(member)\n\u0020\u0020\u0020\u0020\u0020\u0020entry.delete(0,\u0020tk.END)\n\n\u0020\u0020def\u0020finish_input():\n\u0020\u0020\u0020\u0020input_window.destroy()\n\n\u0020\u0020label\u0020=\u0020tk.Label(input_window,\u0020text="Enter\u0020member\u0020names\u0020one\u0020by\u0020one:")\n\u0020\u0020label.pack()\n\n\u0020\u0020entry\u0020=\u0020tk.Entry(input_window)\n\u0020\u0020entry.pack()\n\n\u0020\u0020add_button\u0020=\u0020tk.Button(input_window,\u0020text="Add\u0020Member",\u0020command=add_member)\n\u0020\u0020add_button.pack()\n\n\u0020\u0020finish_button\u0020=\u0020tk.Button(input_window,\u0020text="Finish",\u0020command=finish_input)\n\u0020\u0020finish_button.pack()\n\n\ndef\u0020remove_selected():\n\u0020\u0020for\u0020s\u0020in\u0020selected:\n\u0020\u0020\u0020\u0020if\u0020s\u0020in\u0020members:\n\u0020\u0020\u0020\u0020\u0020\u0020members.remove(s)\n\n\ndef\u0020pick_member():\n\u0020\u0020if\u0020len(members)\u0020==\u00200:\n\u0020\u0020\u0020\u0020messagebox.showinfo("Pick\u0020Member",\u0020"All\u0020members\u0020have\u0020been\u0020selected!")\n\u0020\u0020\u0020\u0020return\u0020False\n\u0020\u0020selected_member\u0020=\u0020random.choice(members)\n\u0020\u0020selected.append(selected_member)\n\u0020\u0020members.remove(selected_member)\n\u0020\u0020messagebox.showinfo("Pick\u0020Member",\u0020f"Congratulations\u0020{selected_member}\u0020has\u0020been\u0020selected!")\n\u0020\u0020return\u0020True\n\n\ndef\u0020show_members():\n\u0020\u0020members_window\u0020=\u0020tk.Toplevel()\n\u0020\u0020members_window.title("Members")\n\n\u0020\u0020members_label\u0020=\u0020tk.Label(members_window,\u0020text="Members:")\n\u0020\u0020members_label.pack()\n\n\u0020\u0020members_listbox\u0020=\u0020tk.Listbox(members_window)\n\u0020\u0020for\u0020member\u0020in\u0020members:\n\u0020\u0020\u0020\u0020members_listbox.insert(tk.END,\u0020member)\n\u0020\u0020members_listbox.pack()\n\n\u0020\u0020selected_label\u0020=\u0020tk.Label(members_window,\u0020text="Selected\u0020Members:")\n\u0020\u0020selected_label.pack()\n\n\u0020\u0020selected_listbox\u0020=\u0020tk.Listbox(members_window)\n\u0020\u0020for\u0020member\u0020in\u0020selected:\n\u0020\u0020\u0020\u0020selected_listbox.insert(tk.END,\u0020member)\n\u0020\u0020selected_listbox.pack()\n\n\ndef\u0020main():\n\u0020\u0020main_window\u0020=\u0020tk.Tk()\n\u0020\u0020main_window.title("Lucky\u0020Draw\u0020Tool")\n\n\u0020\u0020def\u0020help_command():\n\u0020\u0020\u0020\u0020messagebox.showinfo("Help",\u0020"Available\u0020commands:\n"\n\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020" help\u0020-\u0020Show\u0020help\n"\n\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020" pick\u0020-\u0020Pick\u0020a\u0020member\n"\n\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020" remove\u0020-\u0020Remove\u0020selected\u0020members\n"\n\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020" show\u0020-\u0020Show\u0020members\u0020and\u0020selected\u0020members\n"\n\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020" quit\u0020-\u0020Quit\u0020the\u0020program")\n\n\u0020\u0020def\u0020pick_command():\n\u0020\u0020\u0020\u0020if\u0020pick_member():\n\u0020\u0020\u0020\u0020\u0020\u0020return\n\u0020\u0020\u0020\u0020else:\n\u0020\u0020\u0020\u0020\u0020\u0020main_window.quit()\n\n\u0020\u0020def\u0020remove_command():\n\u0020\u0020\u0020\u0020remove_selected()\n\u0020\u0020\u0020\u0020messagebox.showinfo("Remove\u0020Selected",\u0020"Selected\u0020members\u0020have\u0020been\u0020removed!")\n\n\u0020\u0020def\u0020show_command():\n\u0020\u0020\u0020\u0020show_members()\n\n\u0020\u0020def\u0020quit_command():\n\u0020\u0020\u0020\u0020main_window.quit()\n\n\u0020\u0020help_button\u0020=\u0020tk.Button(main_window,\u0020text="Help",\u0020command=help_command)\n\u0020\u0020help_button.pack()\n\n\u0020\u0020input_members_button\u0020=\u0020tk.Button(main_window,\u0020text="Input\u0020Members",\u0020command=input_members)\n\u0020\u0020input_members_button.pack()\n\n\u0020\u0020manual_input_button\u0020=\u0020tk.Button(main_window,\u0020text="Manual\u0020Input",\u0020command=manual_input)\n\u0020\u0020manual_input_button.pack()\n\n\u0020\u0020pick_button\u0020=\u0020tk.Button(main_window,\u0020text="Pick",\u0020command=pick_command)\n\u0020\u0020pick_button.pack()\n\n\u0020\u0020remove_button\u0020=\u0020tk.Button(main_window,\u0020text="Remove",\u0020command=remove_command)\n\u0020\u0020remove_button.pack()\n\n\u0020\u0020show_button\u0020=\u0020tk.Button(main_window,\u0020text="Show",\u0020command=show_command)\n\u0020\u0020show_button.pack()\n\n\u0020\u0020quit_button\u0020=\u0020tk.Button(main_window,\u0020text="Quit",\u0020command=quit_command)\n\u0020\u0020quit_button.pack()\n\n\u0020\u0020main_window.mainloop()\n\n\nif\u0020__name__\u0020==\u0020"main":\n\u0020\u0020main()
原文地址: https://www.cveoy.top/t/topic/pHbZ 著作权归作者所有。请勿转载和采集!