Как скопировать историю отмены / повтора виджета Tkinter Text в другой - PullRequest
0 голосов
/ 12 сентября 2018

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

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

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

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

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

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

1 Ответ

0 голосов
/ 12 сентября 2018

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

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

...