无法点链接
from tkinter import *root = Tk()
text = Text(root, width=30, height=5)
text.pack()
text.insert(INSERT, "I love FishC.com!")
text.tag_add("link", "1.7", "1.16")
text.tag_config("link", foreground="blue", underline=True)
def show_hand_cursor(event):
text.config(cursor="arrow")
def show_arrow_cursor(event):
text.config(cursor="xterm")
def click(event):
webbrowser.open("http://www.fishc.com")
text.tag_bind("link", "<Enter>", show_hand_cursor)
text.tag_bind("link", "<Leave>", show_arrow_cursor)
text.tag_bind("link", "<Button-1>", click)
mainloop()
为什么点不到链接? 本帖最后由 笨鸟学飞 于 2020-11-18 17:11 编辑
啥意思?把问题说清楚一点,你这缩进都乱成啥样了。代码能跑成功就有鬼了。
而且你的事件绑定也写的乱七八糟的。都不知道你想干啥。。{:10_285:}
建议
1、把自己的代码注释一下你想干啥
2、把问题描述清楚 把你的缩进改了一下,然后我添加了一个import webbrowser。如下:
import webbrowser
from tkinter import *
root = Tk()
text = Text(root, width=30, height=5)
text.pack()
text.insert(INSERT, "I love FishC.com!")
text.tag_add("link", "1.7", "1.16")
text.tag_config("link", foreground="blue", underline=True)
def show_hand_cursor(event):
text.config(cursor="arrow")
def show_arrow_cursor(event):
text.config(cursor="xterm")
def click(event):
webbrowser.open("http://www.fishc.com")
text.tag_bind("link", "<Enter>", show_hand_cursor)
text.tag_bind("link", "<Leave>", show_arrow_cursor)
text.tag_bind("link", "<Button-1>", click)
mainloop() 缩进的问题。我改成正常缩进,可以正常运行。
import webbrowser
from tkinter import *
root = Tk()
text = Text(root, width=30, height=5)
text.pack()
text.insert(INSERT, "I love FishC.com!")
text.tag_add("link", "1.7", "1.16")
text.tag_config("link", foreground="blue", underline=True)
def show_hand_cursor(event):
text.config(cursor="arrow")
def show_arrow_cursor(event):
text.config(cursor="xterm")
def click(event):
webbrowser.open("http://www.fishc.com")
text.tag_bind("link", "<Enter>", show_hand_cursor)
text.tag_bind("link", "<Leave>", show_arrow_cursor)
text.tag_bind("link", "<Button-1>", click)
mainloop() 缩进的问题。
def show_hand_cursor(event):
text.config(cursor="arrow")
def show_arrow_cursor(event):
text.config(cursor="xterm")
def click(event):
webbrowser.open("http://www.fishc.com")
text.tag_bind("link", "<Enter>", show_hand_cursor)
text.tag_bind("link", "<Leave>", show_arrow_cursor)
text.tag_bind("link", "<Button-1>", click)
mainloop()
就没问题了。 本帖最后由 gonff 于 2020-11-18 19:03 编辑
缩进的问题。把def开头的语句都移到开头,后面跟的也相应的前移。然后mainloop()也要移到行首处。缩进搞定了,光标就正常了。
然后还少了import webbrowser这一句。要不然无法打开网页。
感觉你可能是从别处复制过来的代码,以后要注意缩进。 import webbrowser
from tkinter import *
root = Tk()
text = Text(root, width=30, height=5)
text.pack()
text.insert(INSERT, "I love FishC.com!")
text.tag_add("link", "1.7", "1.16")
text.tag_config("link", foreground="blue", underline=True)
def show_hand_cursor(event):
text.config(cursor="arrow")
def show_arrow_cursor(event):
text.config(cursor="xterm")
def click(event):
webbrowser.open("http://www.fishc.com")
text.tag_bind("link", "<Enter>", show_hand_cursor)
text.tag_bind("link", "<Leave>", show_arrow_cursor)
text.tag_bind("link", "<Button-1>", click)
mainloop()
这个可以执行。也能进网页。 gonff 发表于 2020-11-18 18:57
这个可以执行。也能进网页。
不好意思,我看书看漏了。为什么增加import webbrowser还是进不了网页? 可能是要光标变形之后才可以。如果是文本输入形态的光标点了没用。因为这个时候他判定你没有点在link上。 gonff 发表于 2020-11-19 16:46
可能是要光标变形之后才可以。如果是文本输入形态的光标点了没用。因为这个时候他判定你没有点在link上。
光标点到链接上面不变形。 import webbrowser
from tkinter import *
root = Tk()
text = Text(root, width=30, height=5)
text.pack()
text.insert(INSERT, "I love FishC.com!")
text.tag_add("link", "1.7", "1.16")
text.tag_config("link", foreground="blue", underline=True)
def show_hand_cursor(event):
text.config(cursor="arrow")
def show_arrow_cursor(event):
text.config(cursor="xterm")
def click(event):
webbrowser.open("http://www.fishc.com")
text.tag_bind("link", "<Enter>", show_hand_cursor)
text.tag_bind("link", "<Leave>", show_arrow_cursor)
text.tag_bind("link", "<Button-1>", click)
mainloop()
我直接复制代码,可以正常运行,光标会变化,也能打开网页。不过我发现缩进还有点细微的问题,你再试试这个吧!又改了两个缩进。 你这是什么缩进。。。而且没导入 webbrowser 模块
帮你改好了:
import webbrowser
from tkinter import *
root = Tk()
text = Text(root, width=30, height=5)
text.pack()
text.insert(INSERT, "I love FishC.com!")
text.tag_add("link", "1.7", "1.16")
text.tag_config("link", foreground="blue", underline=True)
def show_hand_cursor(event):
text.config(cursor="arrow")
def show_arrow_cursor(event):
text.config(cursor="xterm")
def click(event):
webbrowser.open("http://www.fishc.com")
text.tag_bind("link", "<Enter>", show_hand_cursor)
text.tag_bind("link", "<Leave>", show_arrow_cursor)
text.tag_bind("link", "<Button-1>", click)
mainloop()
页:
[1]