Я создал простое приложение keygen в качестве учебного упражнения с tkinter. У меня все работает, кроме виджета Entry в tkinter. Когда я пытаюсь вставить в нее переменную, в поле ввода отображается «.! Label». Часть с виджетом Label работает правильно и генерирует ожидаемый ключ. Почему Entry интерпретирует это как ".! Label"? Как заставить переменную корректно отображаться в виджете «Ввод», как это происходит в виджете «Метка»?
TLDR: keyEntry.insert(0, keyLabel) returns ".!label" in the Entry widget field on the GUI.
Пожалуйста, дайте мне знать, если необходимы дополнительные разъяснения. Я новичок в формах, и это мой первый пост. Я ценю любую оказанную помощь, так как это сводит меня с ума!
Вот мой код:
from tkinter import *
import secrets
import string
import os
import sys
def gen():
characters = string.ascii_uppercase + string.digits
key = "".join(secrets.choice(characters) for x in range(25))
keyLabel['text'] = '-'.join([key[i:i + 5] for i in range(0, len(key), 5)])
keyEntry.delete(0, END)
keyEntry.insert(0, keyLabel)
def resource_path(relative_path):
base_path = getattr(sys, '_MEIkey', os.path.dirname(os.path.abspath(__file__)))
return os.path.join(base_path, relative_path)
root = Tk()
root.wm_title("Key Gen v1.0")
root.geometry("250x100")
root.iconbitmap(resource_path('icon.ico'))
keyLabel = Label(root)
keyLabel.pack()
keyEntry = Entry(root)
keyEntry.pack()
genButton = Button(root, text="Generate Key", fg="blue", command=gen)
genButton.pack()
root.mainloop()