2013-03-07 62 views
4

我加载网页,其中一个文件后自动断开连接,然后我在它替代了一些HTML的:第一信号发射

self.template_web_page = QtWebKit.QWebPage() 
    self.template_web_page.mainFrame().load(QtCore.QUrl('template.html')) 
    def load(ok): 
     main_window.web_view.loadFinished.disconnect(load) 
     self.table_element = self.template_web_page.mainFrame().findFirstElement("#table") 
     self.table_element.setInnerXml(table_html) 
    main_window.web_view.loadFinished.connect(load) 

是否有连接到信号只是一个镜头的方法吗?

+0

您的解决方案对我来说很理想..这有问题吗? – Luke 2013-03-19 17:45:53

+0

如果QTimer上有singleShot方法,我认为可能有类似的方便信号方法 – warvariuc 2013-03-20 08:36:28

回答

1

如前所述,似乎没有比这更好(更简洁)的方式。

http://comments.gmane.org/gmane.comp.lib.qt.general/6883表明这样的解决方案是好的,尽管我自己也有这样的解决方案的问题。我发现如果我在插槽的开始处断开插槽(就像问题中的代码所做的那样),然后尝试执行一些GUI交互(设置状态栏文本是一个问题,但不会突出显示列表视图中的一行),由于空指针解引用,我得到一个异常。这是PyQt 4.6.2 for Windows for Python 2.6。当我将disconnect()调用移动到插槽末尾时,问题就消失了。

如果这不相关,我会提前道歉,这只是我犯的一个愚蠢的错误。