QDialog 資料傳遞

2021-07-12 00:27:43 字數 891 閱讀 9543

對話方塊的出現用於完成乙個簡單的或者是短期的任務。對話方塊與主視窗之間的資料互動相當重要。對話方塊分為模態和非模態兩種。我們也將以這兩種為例,分別進行闡述。模態對話方塊使用了 exec() 函式將其顯示出來。exec() 函式執行**就會被阻塞,後面的語句也就不會被執行到。因此,對於使用了 exec() 顯示的模態對話方塊,我們可以在exec() 函式之後直接從對話方塊的物件獲取到資料值。實際上,qdialog::exec() 是有返回值的,其返回值是 qdialog::accepted或者 qdialog::rejected。一般我們會使用類似下面的**:

qdialog dialog(this);

if (dialog.exec() == qdialog::accepted) else

如果是非模態對話方塊,qdialog::show() 函式會立即返回,我們換一種思路獲取資料,那就是使用訊號槽機制由於非模態對話方塊在關閉時可以呼叫 qdialog::accept() 或者qdialog::reject() 或者更通用的 qdialog::done() 函式,所以我們可以在這裡發出訊號。另外,如果找不到合適的訊號發出點,我們可以重寫qdialog::closeevent() 函式,在這裡發出訊號。在需要接收資料的視窗(這裡是主視窗)連線到這個訊號即可。類似的**片段如下所示

// in dialog:

void useragedialog::accept()

// in main window:

void mainwindow::showuseragedialog()

void mainwindow::setuserage(int age)

源文來自:

JAVA資料傳遞

1 對於原始資料型別,也就是int long char之類的型別,是傳值的,如果你在方法中修改了值,方法呼叫結束後,那個變數的值沒用改變。2 對於物件型別,也就是object的子類,如果你在方法中修改了它的成員的值,那個修改是生效的,方法呼叫結束後,它的成員是新的值,但是如果你把它指向乙個其它的物件...

Intent資料傳遞

1 首先是activity的簡單跳 activity的切換一般是通過intent來實現的,intent是乙個activity到達另乙個activity的引路者,它描述了起點 當前activity 和終點 目標activity 乙個簡單intent實現如下 intent intent new inte...

Intent資料傳遞

1 首先是activity的簡單跳 activity的切換一般是通過intent來實現的,intent是乙個activity到達另乙個activity的引路者,它描述了起點 當前activity 和終點 目標activity 乙個簡單intent實現如下 intent intent new inte...