当点击按钮时,我该如何使用PyQt打开一个URL?

4

我希望在点击按钮时使用PyQt4打开一个URL。我已经尝试了一些建议的代码,但它们都不能正常工作。

btn.clicked.connect(webbrowser.open('http://www.google.com'))

2
请举例说明您使用的方法以及为什么它没有起作用。 - Slava Vedenin
我把例子放在上面。 - Just a student
网页浏览器的类型是什么? - Trilarion
2
使用lambda表达式、定义一个新函数或使用functools.partial创建一个没有参数的函数来传递给connect。你不应该在末尾加上()。你要传递函数本身而不是它的返回值。 - Paul Rooney
1
@Trilarion webbrowser 是一个标准模块。 - Paul Rooney
显示剩余3条评论
1个回答

5

正如Paul Ronney所指出的那样: 在你的代码中,你立即调用了webbrowser对象的open方法,这并不是你想要的,你想在按钮被点击时执行它。为此,你需要指定一个没有执行的方法,即没有()

使用方法:

def open_webbrowser():
    webbrowser.open('http://www.google.com')

btn.clicked.connect(open_webbrowser)

或使用lambda表达式:

btn.clicked.connect(lambda: webbrowser.open('http://www.google.com'))

非常感谢,它起作用了。 - Just a student
@Justastudent 不用谢。Paul Ronney 也功不可没。如果它解决了你的问题并且你喜欢它,你知道你可以点赞答案(点击向上箭头)并且还可以将其标记为已解决(问题旁边的问号)。 - Trilarion

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接