qt - 第一次发射信号后自动断开

标签 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)

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

最佳答案

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

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

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

关于qt - 第一次发射信号后自动断开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15263364/

相关文章:

qt - 带有QT 5.1.0错误的OpenCV 2.4.6

c++ - QGraphicsScene 中的小部件

qt - Context2D.putImageData 不起作用

qt - QDialogBu​​ttonBox 中 "Apply"按钮的位置

c++ - Qt->QGraphicsView->QGraphicsItem 调整大小

python - PyQt5 QWidget 将固定宽度设置为最小可用尺寸

python - QLabel 将第二次调用 setText() 时的文本长度限制为第一个值的长度

python - 是否可以使用 pyinstaller 来构建带有我自己的图标的 exe?

c++ - 用qt制作C++库

c++ - 列出QTable - 选择动态