Python: как отобразить в полноэкранном режиме и определить количество игроков - PullRequest
0 голосов
/ 20 декабря 2018

Я новичок в python, и я хотел бы спросить, после того как я определю количество игроков, которые будут играть, как оно появится для ввода имени игрока.Это код, который я построил до сих пор.

import tkinter as tk
from tkinter import *


root = tk.Tk()
root.state('zoomed')


#No. of players

player_text=StringVar()
player_choices = ['1','2','3','4']
player_text.set('Players')

def players_playing(*args):
    print( player_text.get() )

player_text.trace('w', players_playing)
Players = tk.Label(root, 
         text="Input the number of Players:",
         fg = "red",
         font = "Times") #Label widget

Players.pack()
Players.grid(row=0, sticky = E)

player = OptionMenu(root, player_text, *player_choices)
player.grid(row=0, column=1)

if player_choices == '0':
    Player1 = tk.Label(root, 
         text="Player1: ",
         fg = "Black",
         font = "Times")
    Player1.grid(row=1, sticky = E)`enter code here`

    entry_1 = Entry(root)
    entry_1.grid(row=1, column=1)

root.mainloop() #window wont appear if this code doesnt exist

1 Ответ

0 голосов
/ 20 декабря 2018

Я пишу пример программы, которая показывает вам, как вы можете создать всплывающее окно.

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 на основе номера игрока.

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...