当我把PyQt4中的QWebView放入函数时,它不会打开

2024-04-19 07:22:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在试用PyQt4中QWebView的一些基本功能。我只想加载一个网址。奇怪的是,当我将QWebView放入函数调用时,它不起作用,但当它是内联的时,它确实起作用。你知道吗

因此,以下代码按预期工作:

if __name__ == '__main__':
    app = QApplication(sys.argv)
    web = QWebView()
    web.load(QUrl('http://www.google.com'))
    web.setFixedSize(500, 500)
    web.show()
    sys.exit(app.exec_())

但是,当我将QWebView代码移到函数中时,如下图所示,web视图永远不会打开。相反,应用程序似乎挂起了。你知道吗

def openPage():
    web = QWebView()
    web.load(QUrl('http://www.google.com'))
    web.setFixedSize(500, 500)
    web.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    openPage()
    sys.exit(app.exec_())

这是怎么回事?这似乎没有道理。你知道吗


Tags: 代码namewebapphttpifmainwww
1条回答
网友
1楼 · 发布于 2024-04-19 07:22:09

openPage中,将web视图对象绑定到局部变量web。当变量超出范围时(当函数返回时),web视图将自动销毁。您需要保留对视图的引用,可能是这样return

def openPage():
    web = QWebView()
    web.load(QUrl('http://www.google.com'))
    web.setFixedSize(500, 500)
    web.show()
    return web

if __name__ == '__main__':
    app = QApplication(sys.argv)
    web = openPage()
    sys.exit(app.exec_())

相关问题 更多 >