在前兩篇博文中(見 http://www.linuxidc.com/Linux/2014-03/98899.htm 與 http://www.linuxidc.com/Linux/2014-03/98901.htm ),已經展示了兩種窗體間傳值的方式,這裡介紹另一種,使用public函數接口的方式,這裡就牽扯到兩個方向間的傳值,父到子以及子到父窗口,通過這種方式都很容易做到,如子到父,可以在子窗體中實現一個public方法如prepareDoingData(&data),將需要處理的data的引用傳遞到子窗體,子窗體中可以對其進行操作,這裡展示父到子的傳值:
在Dialog界面中增加一個TextEdit用於顯示最終傳遞的內容,並增加一個公有的方法:
public:
void setTextEditData(QString data);
void Dialog::setTextEditData(QString data)
{
ui->textEdit->setText(data);
}
上面部分是在頭文件中的內容,下面為在.cpp中的內容,而在mainwindow.cpp中只需要進行調用即可:
dlg->setTextEditData(QString("我來測試公有接口方式傳值!"));
最終的結果
至此,三種傳值的方式已經全部講解完畢,具體在項目中國使用哪種方式進行傳值,則要視具體情況而定。個人感覺,基本傳值可以采用信號槽方式降低耦合,系統配置可以使用單例模式然後在各個界面中進行配置,而public接口方式則適用於父子間窗體傳值。
Qt 的詳細介紹:請點這裡
Qt 的下載地址:請點這裡