首次发出信号后自动断开

时间:2013-03-07 04:54:22

标签: qt qt4 pyqt pyqt4

我正在从文件加载网页,然后我替换其中的一些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)

有没有办法只为一次拍摄连接信号?

1 个答案:

答案 0 :(得分:1)

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

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

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