Для текста на этикетке, которая может быть выбрана en masse, должны быть привязки, применяемые так, чтобы программа знала, когда ее выбирать (в отличие от чего-то еще), и должен быть некоторый код для размещения кода в выборке (или, скорее, в буфер обмена). Последнее на самом деле довольно просто сделать с помощью команды clipboard
:
clipboard clear
clipboard append $text
неуклюжий бит настройки привязок и показывая, что выбор произошло. Простейшим просто сделать что-то хромой, как это (связывание с помощью мыши):
bind .lbl <1> {
clipboard clear
clipboard append [%W cget -text]
bell
}
ОК, это, безусловно, хромой; ты можешь лучше! То, что вы не получите, это стиль выделения того, что встроенные ярлыки Windows часто поддерживают (где вы можете перетащить выделение и просто нажмите Ctrl + C), поскольку для этого требуется возможность нарисовать выделение, которое Tk ярлыков виджетов просто нет. (Вы можете взломать что-то с помощью записей, но они не могут выполнять несколько строк текста, или вы можете использовать текстовый виджет, но тогда вам нужно сделать лот работы со связями, чтобы заставить его вести себя как хотите.)
radnom downvoter: пожалуйста, объясните! – drevicko