Есть ли способ записи объектов _tkinter.tkapp в файл с помощью pickle, json или подобного? - python ткинтер - PullRequest
2 голосов
/ 01 мая 2020

Я пытаюсь записать tkinter 'widgets' в файл, чтобы я мог снова использовать их в другом проекте tkinter. Я пытался использовать рассол и json для достижения этого sh, но, к сожалению, это не помогло. Вот что я пробовал:

pickle:

def save(widgets):
    with open("testfile.pickle","wb") as file:
        pickle.dump(widgets,file) #TypeError: can't pickle _tkinter.tkapp objects

json:

def save(widgets):
    with open("testfile.pickle","wb") as file:
        jsonWidgets = json.dumps(widgets) #TypeError: Object of type Button is not JSON serializable
        file.write(jsonWidgets)

, если я использую функцию print () на виджетах Я получаю переменную:

[{'widget': <tkinter.Button object .0>, 'type': 'button', 'font': <tkinter.font.Font object at 0x000001A4EC0AC860>, 'ID': 0, 'name': 'widget_no_0'}]

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 01 мая 2020

Есть ли способ записи объектов _tkinter.tkapp в файл с помощью pickle, json или подобного? - python ткинтер

Нет, нет. Tkinter - это оболочка для встроенного интерпретатора tcl. Виджеты являются объектами tcl, а не python объектами, и python не имеет возможности передавать их на диск.

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