在 tcl 中启用来自 canvas 的文本复制

Enable text copy from canvas in tcl

我想启用对 canvas 上的文本的复制。有可能这样做吗? 我使用以下方式放置文本:

.c.canvasName create text 100 90 $var -font {Courier -12} ...

其中 var 包含一个 tcl tk 矩阵。

正如 Donal 所写,ctext.tcl 提供了许多有关如何管理画布中的文本项目的有用提示。

请注意,它并未演示将文本复制到剪贴板。使用以下代码实现基本的剪贴板复制功能:

$c bind text <<Copy>> "textCopy $c"

...

proc textCopy {w} {
    clipboard clear
    clipboard append [selection get]
    selection clear
}

clipboard clear 清空 Tk 剪贴板,clipboard append 将新文本复制到其中。在 Windows 上,您可以使用正常的 Ctrl+V.

粘贴此文本

selection get 从当前选择中复制文本,如果没有选择文本则抛出错误。使用

    catch {clipboard append [selection get]}

抑制此类错误。

selection clear 取消选择。