我正在使用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
}
任何人都可以帮助我?
我想要的是在我的窗口文本中显示超链接:
以下链接提供了进一步的信息:
在阅读文件的过程中我有像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
我能做什么才能得到我想要的东西?
注意第一次更新已取消版权保护
答案 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
}
这应该创建类似于打开文件的文本的文本,但不是打开文件将打开默认浏览器中的链接。