我希望在点击按钮时使用PyQt4打开一个URL。我已经尝试了一些建议的代码,但它们都不能正常工作。
btn.clicked.connect(webbrowser.open('http://www.google.com'))
正如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'))
functools.partial
创建一个没有参数的函数来传递给connect。你不应该在末尾加上()。你要传递函数本身而不是它的返回值。 - Paul Rooney