tkinter Виджет Entry не обрабатывает переменную, как я ожидал - возвращает ".! label" в поле виджета Entry - PullRequest
0 голосов
/ 02 мая 2020

Я создал простое приложение 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...