Я пишу пример программы, которая показывает вам, как вы можете создать всплывающее окно.
import tkinter as tk
def pop_up(root):
# Create top level window for user to input
save_window_toplevel = tk.Toplevel(root)
save_window_toplevel.geometry("400x200+100+100")
# Initiate a save window
save_window = SaveWindow(master=save_window_toplevel)
# wait user to input valid filename
save_window_toplevel.wait_window()
class SaveWindow:
def __init__(self, master):
self.master = master
self.top_frame = tk.Frame(self.master, relief="solid")
self.top_frame.pack(side="top", fill="none", expand=True)
self.label_1 = tk.Label(self.top_frame, text="Player Name: ")
self.label_1.grid(row=0, column=0, sticky="w", padx=5, pady=5)
self.username_entry = tk.Entry(self.top_frame, width=20)
self.username_entry .grid(row=0, column=1, padx=5, pady=5)
self.save_button = tk.Button(self.top_frame, text="Save", command=lambda: self.read_username())
self.save_button.grid(row=1, column=0, columnspan=2, pady=20)
self.name_valid = False
self.username = None
def read_username(self):
temp_username = self.username_entry.get()
if temp_username == '':
print("No valid name")
return
else:
self.name_valid = True
self.username = temp_username
self.master.destroy()
if __name__ == '__main__':
root = tk.Tk()
pop_up_button = tk.Button(root, text="Pop-Up", width=10, command=lambda : pop_up(root))
pop_up_button.pack(side='left')
root.mainloop()
Итак, что вы можете сделать, вы можете вызвать функцию pop_up
, когда вам нужно.Есть еще одна вещь, которую вы можете улучшить.Вы можете создать множественное поле entry
на основе номера игрока.
Надеюсь, это поможет