如何在tcl tk中创建超链接?

时间:2015-07-21 11:05:58

标签: hyperlink tcl

我正在使用Tcl-Tk 8.6.4,我是一个初学者,我想在我的文本中创建超链接。 我正在寻找一个程序,可以在论证中包含网站的网址,这个网址将在我的文字中以蓝色显示并加下划线。当然,通过点击网址,它将打开网站。 我找到了以下代码,但我不确定它会做我想要的。

proc hyperlink { name args } {
  if { "Underline-Font" ni [ font names ] } {
    font create Underline-Font {*}[ font actual TkDefaultFont ]
    font configure Underline-Font -underline true -size 12
  }
  if { [ dict exists $args -command ] } {
    set command [ dict get $args -command ]
    dict unset args -command
  }
  label $name {*}$args -foreground blue -font Underline-Font
  if { [ info exists command ] } {
    bind $name <Button-1> $command
  }
  return $name
}

任何人都可以帮助我?

更新2

我想要的是在我的窗口文本中显示超链接:

以下链接提供了进一步的信息:

显示第一个代码后,我能够显示: enter image description here 使用的代码是:

  • 在阅读文件的过程中我有像HTML标签这样的标签,如

    "<hypLink>" {
        gets $infile inln
        hyperlink .hl${counter} -command [list eval exec [auto_execok start] "$inln"] -text "$inln"
        pack .hl${counter}
        incr counter
    }
    
  • 在我写的文件中

    半导体:

    <hypLink>
    https://en.wikipedia.org/wiki/Semiconductor 
    <hypLink>
    http://electronics.howstuffworks.com/diode.htm
    

我能做什么才能得到我想要的东西?

注意第一次更新已取消版权保护

1 个答案:

答案 0 :(得分:0)

您可以使用找到的proc。如果你有:

hyperlink .hl -command [list puts "clicked"] -text "Click Me"
pack .hl

在您的代码中单击“超链接”,您将获得文本clicked到标准输出。

如果要打开默认浏览器并转到超链接指定的网址,则必须将代码更改为:

hyperlink .hl -command [list eval exec [auto_execok start] "http://www.example.com"] -text "Click Me"
pack .hl

你也可以玩一下proc,也许改变字体大小(来自-size 12)或改变字体本身。

发布编辑:

您可以在代码中添加“超链接”,方法是在dispFile proc中添加以下内容:

"<hypLink>" {
    gets $infile inln
    .fr.txt insert end "$inln" "link lk$lkcount"
    .fr.txt insert end "\n" Normal
    .fr.txt tag bind lk$lkcount <1> [list eval exec [auto_execok start] "$inln"]
    incr lkcount
}

这应该创建类似于打开文件的文本的文本,但不是打开文件将打开默认浏览器中的链接。