上一次的文章講到了使用Signal&Slot機制進行窗體間數據的傳遞(見http://www.linuxidc.com/Linux/2014-03/98899.htm)。這裡介紹另一種方式全局變量進行傳值,在上一次的界面中的mainWindow和dialog中分別加入一個Label和LineEdit以及一個pushbutton。效果如:
運行方式為在主界面mainWindow中單擊全局變量按鈕對全局變量進行賦值,賦值完成後,在Dialog中單擊全局變量在LineEdit中顯示全局變量的值,可以發現這種方式下可以很容易的反轉傳遞內容。
具體實現為:
在mainWindow.cpp文件中加入:
QString globaldata; //聲明一個全局變量用於窗體間傳值
在全局傳值按鈕的clicked事件中對gloabaldata進行賦值:
void MainWindow::on_globalpb_clicked()
{
globaldata = ui->lineEdit->text();
}
在Dialog.cpp文件中聲明外部變量:
extern QString globaldata;
在全局傳值按鈕的clicked事件中對gloabaldata進行顯示:
void Dialog::on_pushButton_clicked()
{
ui->lineEdit_2->setText(globaldata);
}
這種方式,可以看到一些缺點,就是不容易對UI界面進行實時顯示,但是這對於一個系統來講也有一些優勢,就是可以方便地將一個系統的配置分配到相關的UI界面中去,但是,同樣的,也增加了程序之間的耦合性。
為了節省篇幅,這裡不將最後的結果上傳上來了, 下一博文,將介紹窗體間傳值的另一種方式:public函數接口方式。
Qt 的詳細介紹:請點這裡
Qt 的下載地址:請點這裡