from tkinter import Tk, scrolledtext, INSERT, Button, PhotoImage, Label, Text

root = Tk()
root.geometry('1000x550')
bg = PhotoImage(file='./assets/bg.png')
root.resizable(False, False)
root.title('Testing Classes')
window = Label(root, image=bg)
window.place(relheight=1, relwidth=1)

tokenBox = Text(window, bd=0, height=1, width=30)


def get_token():
    token = tokenBox.get('1.0', 'end-1c')
    print(token)
    return token


prefixBox = Text(window, bd=0, height=1, width=20)
prefixBox.place(x=400, y=100)
tokenBox.place(x=350, y=150)


def get_prefix():
    prefix = prefixBox.get('1.0', 'end-1c')
    print(prefix)
    return prefix


def codeInsert():
    prefixBox.place(x=400, y=100)
    tokenBox.place(x=350, y=150)
    code = f'''
    import discord
    from discord.ext import commands

    bot = commands.Bot(prefix={get_prefix()})

    bot.run({get_token()})
    '''
    codeBox = scrolledtext.ScrolledText(window, width=50, height=15, bg='Black', fg='Red')
    codeBox.insert(INSERT, code)
    codeBox.configure(state='disabled')
    codeBox.place(x=300, y=300)


submit = Button(window, command=codeInsert, text='Submit Everything', bd=0)
submit.place(x=425, y=250)
window.mainloop()  

Cuando hago clic en el botón Enviar, oculta todos los cuadros de texto. Los cuadros de texto solo vuelven cuando hago clic en ellos. Todavía veo que el cursor cambia, cuando coloco el cursor sobre ellos, pero las etiquetas también se ocultan y nunca se muestran. Es como si se volvieran transparentes y se volvieran opacos solo cuando hago clic en ellos.

1
Hunter 11 mar. 2021 a las 20:05

1 respuesta

La mejor respuesta

Prueba esto:

from tkinter import Tk, scrolledtext, INSERT, Button, PhotoImage, Label, Text

root = Tk()
root.geometry('1000x550')
bg = PhotoImage(file='./assets/bg.png')
root.resizable(False, False)
root.title('Testing Classes')
window = Label(root, image=bg)
window.place(relheight=1, relwidth=1)

tokenBox = Text(root, bd=0, height=1, width=30)


def get_token():
    token = tokenBox.get('1.0', 'end-1c')
    print(token)
    return token


prefixBox = Text(root, bd=0, height=1, width=20)
prefixBox.place(x=400, y=100)
tokenBox.place(x=350, y=150)


def get_prefix():
    prefix = prefixBox.get('1.0', 'end-1c')
    print(prefix)
    return prefix


def codeInsert():
    # Add these lines here if you want to remove the button/entries.
    #tokenBox.place_forget()
    #prefixBox.place_forget()
    #submit.place_forget()

    code = f'''
    import discord
    from discord.ext import commands

    bot = commands.Bot(prefix={get_prefix()})

    bot.run({get_token()})
    '''
    codeBox = scrolledtext.ScrolledText(root, width=50, height=15, bg='Black', fg='Red')
    codeBox.insert(INSERT, code)
    codeBox.configure(state='disabled')
    codeBox.place(x=300, y=300)


submit = Button(root, command=codeInsert, text='Submit Everything', bd=0)
submit.place(x=425, y=250)
window.mainloop()

El problema es que tenías la etiqueta (llamada window) como maestra para los otros widgets. Nunca debes tener un tk.Label como padre para nada. Cuando cambié a todos sus padres a root funcionó.

2
TheLizzard 11 mar. 2021 a las 18:04