2011-08-19 98 views
1

我想創建一個事件處理程序執行時,頁面加載在QWebView完成一個功能,我使用的語法如下:創建
webview->connect(webview,SIGNAL(loadFinished(bool)),this,SLOT(Load_Done()));
此功能如果這有幫助的話,我將使用除主類以外的類。
的問題是,我發現了以下內容:
沒有這樣的插槽的QObject :: Load_Finished()連接功能的事件

回答

1

應該QObject::connect(...)webview->connect。只要定義了Load_Done(),剩下的就看起來很好。

編輯:

爲了確保信號和槽正常工作,需要聲明的類,它的方法:

class Facebook: QObject{ 

    Q_OBJECT 

    public: 

     // ... 

    public slots: 

     void Load_Done(); 

} 
+0

這是所有相關的連接問題的代碼: '的QObject ::連接(web視圖,SIGNAL(loadFinished(布爾)),這一點,SLOT(Load_Done()));' 而這正是我」中號定義在類中的槽: '公共時隙: 空隙Load_Done();' 而這正是Load_Done()的執行情況: '空隙的Facebook :: Load_Done() { 主窗口*主要=新主窗口(); main-> ui-> pushButton-> setEnabled(true); }' 而問題仍然存在。 – Ameen

+0

也許你應該嘗試將'Load_Done()'重命名爲'Load_Done(bool ok)',使它與信號的簽名匹配。另外'QObject :: connect()'調用是從Facebook類完成的,對吧? –

+0

是的,它是從Facebook類 至於布爾,我也試過這個以及問題仍然存在,但是現在我得到一個更合理的錯誤是**沒有這樣的插槽QObject :: Load_Done()* * – Ameen

0

的信號和插槽都具有相同的簽名,例如:

connect(webview,SIGNAL(loadFinished(bool)),this,SLOT(Load_Done(bool))); 

當然,LoadDone(布爾)需要 「這個」 存在,並且是一個溝槽:)