Как скопировать историю отмены / повтора виджета Tkinter Text в другой

У меня есть программа с графическим интерфейсом на основе Tkinter, использующая Python 3.6.5.

У меня есть временное окно с некоторыми текстовыми виджетами (и другими вещами) в нем. При закрытии временного окна все окно уничтожается. Однако я хотел бы сохранить историю отмен / повторов и любой текст, который есть в некоторых конкретных текстовых виджетах, при следующем его открытии (и повторном построении). Перепрограммирование этого другого способа, безусловно, возможно, но это может быть ненужным и большим объемом работы, учитывая то, как все настроено (хотя, если у вас есть идеи, которые, по вашему мнению, должны работать независимо от настройки, не стесняйтесь, дайте мне знать). Изменение настройки, вероятно, может легко привести к ошибкам.

Два разных окна с разными виджетами должны обмениваться данными между некоторыми из похожих виджетов (и я хочу расширить это, чтобы включить историю отмены-повтора). Я считаю, что разные родители являются частью того, почему окно разрушено, но я могу ошибаться (могут быть другие причины).

В любом случае, мне было интересно, где хранится история отмены / повтора текстового виджета? Если бы я мог каким-то образом скопировать это непосредственно перед закрытием окна и поместить его в новый виджет сборки (любого окна, на котором он будет построен), это было бы здорово.

Я добавляю тег tk, так как я просмотрел исходный код Python для tkinter и не нашел ничего особенно полезного (так что, возможно, те, кто использует TCL или что-то подобное, будут знать).

Я понимаю, что может быть невозможно получить доступ к переменной, в которой хранится история, но я решил, что на всякий случай стоит спросить об этом.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
77
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Нет, вы не можете сохранить историю отмены / повтора текстового виджета, уничтожить виджет, а затем повторно применить историю к новому виджету.

Лучшим решением будет уничтожить виджет нет. Просто спрячьте его, а затем снова покажите, вместо того, чтобы разрушать и воссоздавать.

Другие вопросы по теме