我有一個包含其他類的類/ QDialog(我們稱之爲「Frame」)。這是什麼樣子:從QWidget中的另一個類訪問方法
在上面的截圖中,綠色矩形內的一切實際上是一個單獨的類/自定義QWidget的(姑且稱之爲「第三頁」,因爲它是在列表中的第三項)放置在QStackedWidget中,而矩形外的所有內容都是Frame的一部分。因此矩形內的所有東西都與框架分開,即使它看起來是同一個表格的一部分。點擊概述和SQLite日記本對象導致在QStackedWidget中加載單獨的頁面。所有這些類都必須能夠相互通信。
問題是,我不知道如何從Page3內部訪問Frame的公共方法或變量。請參閱第3頁的其中一個功能,是在兩個密碼字段的內容(密碼 & 重複)匹配時解鎖幀中的確定按鈕。爲此,Page3需要調用解鎖Frame中按鈕的方法。我需要與當前正在運行的Frame實例進行通信,而不是創建新副本,因此從Page3內部實例化Frame不起作用。我不能使用parent(),因爲它只是引用Frame內的QStackedWidget而不是Frame本身。
我會很感激,如果有人能告訴我如何做到這一點。
這聽起來像它可能工作。有沒有一種特殊的方式來發送類之間的信號?我問,因爲我從來沒有這樣做過。 –
查看Qt文檔:http://qt-project.org/doc/qt-4.8/signalsandslots.html在類聲明的「signals」部分聲明一個信號,並在「slots 「 部分;然後像普通的類方法那樣定義插槽方法。然後使用'QObject :: connect'方法將它們連接到某個地方,如下所示:'connect(page3,SIGNAL(inputValid()),this,SLOT(unlockOk()));' –
您的解決方案效果很好。謝謝! –