Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python tkinter:浏览器自动打开,无需单击文本_Python_Tkinter_Python Webbrowser - Fatal编程技术网

Python tkinter:浏览器自动打开,无需单击文本

Python tkinter:浏览器自动打开,无需单击文本,python,tkinter,python-webbrowser,Python,Tkinter,Python Webbrowser,我正在使用python和tkinter开发一个项目,文本小部件中的内容 根据程序动态更改。现在在我的文本小部件中,我添加了许多URL。单击这些URL后,web浏览器应该会打开 我引用它是为了在我的代码中创建超链接。但现在我的问题是,每当文本小部件上显示url时,浏览器就会打开,而不必单击它 这是我的代码。 def click1(self,url): webbrowser.open(url) restitle,resthumb,resurl=printit()#title,thumbn

我正在使用python和tkinter开发一个项目,文本小部件中的内容 根据程序动态更改。现在在我的文本小部件中,我添加了许多URL。单击这些URL后,web浏览器应该会打开

我引用它是为了在我的代码中创建超链接。但现在我的问题是,每当文本小部件上显示url时,浏览器就会打开,而不必单击它

这是我的代码。

def click1(self,url): 
    webbrowser.open(url)

restitle,resthumb,resurl=printit()#title,thumbnailimage,url array
while restitle:
    raw_data = urllib.request.urlopen(resthumb[0]).read()
    tim = PIL.Image.open(io.BytesIO(raw_data))
    tim = tim.resize((100, 100), PIL.Image.ANTIALIAS)
    timage = ImageTk.PhotoImage(tim)
    Lb1.image_create(END, image=timage)
    curl=resurl[0]
    Lb1.update()
    images.append(timage)
    Lb1.insert(END,restitle,hyperlink.add(click1(resurl[0])))#Passing url
    Lb1.insert(END,"\n")
    restitle.pop(0)
    resurl.pop(0)
    resthumb.pop(0)
我的问题:
我需要知道如何仅在单击特定文本(超链接)时打开浏览器,而不是在将其添加到文本小部件时打开浏览器。我是python新手,tkinter对代码片段中的任何错误表示抱歉。提前感谢。

这里的问题,是因为您无法将函数直接传递给此方法
hyperlink.add
,因为您使用参数调用它,所以将执行该函数。(请注意,在链接中显示的示例中,我们只传递函数的引用,而不调用它)

如果所有行的参数都相同,则可以使用lambda表达式,但url每次都需要更改,因此,需要使用类似于
partial
工具的工具:

from functools import partial

[...]

Lb1.insert(END,restitle,hyperlink.add(partial(click1, resurl[0])))

click1
是类的方法吗?