Python Forum

Full Version: tkinter help
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
hi everybody,

I m coding a card game. I already coded all the game, I just miss the display.

To code it, I use tkinter but I have some trouble with my code.

it blow up in "create_player" fonction when "Destroy" is called

for me, I just wrote the same thing I wrote to close "choose_game" fonction at the first line of "def_contrée_players" fonction and in this case it runs right.

please help me before my brain blow up too :)

from tkinter import *
from class_player import *


def choose_game():
    choose_game_window = Tk()
    
    choose_game_label = Label(choose_game_window, text = "Wich game do you wanna play?").grid(row = 1)
    contrée_button = Button(choose_game_window, text = "Contrée", command = lambda: def_contrée_players(choose_game_window)).grid(row = 2)
    
    choose_game_window.mainloop()
    choose_game_window.destroy()


def def_contrée_players(window):
    window.destroy()
    
    player_number = 4
    nplayer = 1
    lstentry = []
    name_window = Tk()
    
    for num in range(player_number):
        entrynum = "entry" + str(num)
        
        num = Label(name_window, text = "player name " + str(nplayer)).grid(column = 1, row = nplayer)
        entrynum = Entry(name_window)
        entrynum.grid(column = 2, row = nplayer)
        nplayer += 1
        lstentry += [entrynum]
        
    start_button = Button(name_window, text = "start", command = lambda: create_players(lstentry, name_window))
    start_button.grid(column = 2, row = nplayer)
    
    name_window.mainloop()
    name_window.destroy()


def create_players(lstentry, window):
    lstplayer = []
    for player_name in lstentry:
        gplayer = player()
        gplayer.name = player_name.get()
        lstplayer += [gplayer]
    
    window.destroy()
    return lstplayer