2013-03-07 59 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()調用移動到插槽末尾時,問題就消失了。

如果這不相關,我會提前道歉,這只是我犯的一個愚蠢的錯誤。