我目前有一個表單說A需要一些輸入。然而,爲了獲得輸入,另一種形式表示B需要填充。所以我想要的是,當用戶點擊formA中的一個按鈕,然後顯示formB。現在,當單擊表單B中的按鈕時,結果將返回到formA。做這個的最好方式是什麼。 ?目前我有一個formA,只是顯示錶格B,然後我卡住了。有什麼建議麼 ?打開另一個表單,然後等待該表單返回響應
0
A
回答
1
您可能需要從QDialog
繼承formB
,然後再致電exec()
而不是show()
。
從docs:
顯示對話框作爲模態對話框,阻塞,直到用戶關閉它。該函數返回一個DialogCode結果。
如果對話框是應用程序模式,用戶將無法與同一應用程序中的任何其他窗口進行交互,直到它們關閉對話框。如果對話框是窗口模式,則只有在打開對話框時纔會阻止與父窗口的交互。默認情況下,該對話框是應用程序模式。
與此相結合,您可能需要使用QDialog::accept
,在formB
QDialog::reject
或QDialog::setResult
爲了打發導致的formA
。
0
考慮到您使用的是Qt,最簡單的方法是使用信號和插槽。當按下該按鈕時,您可以使FormB
發出包含所需數據的信號。可以使FormA
連接到這個信號並填寫它的形式。
此示例代碼是抽象的,但你應該能夠得到一般含義 -
void FormA::slotButtonClicked() {
FormB* b = new FormB(this);
connect(b, SIGNAL(requiredData(QVariant)),
this, SLOT(slotFormBData(QVariant())));
// Logic to show form B
}
void FormA::slotFormBData(const QVariant& data) {
// Fill Form A fields with data
}
void FormB::slotButtonClicked() {
QString data = m_lineEdit->text();
emit requiredData(data);
}
如果你不想上發射信號的所有數據,也可以使FormB
發出done(FormB*)
信號哪個FormA
可以掛鉤,然後呼叫FormB
的成員函數來獲取所有需要的數據。
相關問題
- 1. 等待多個響應,然後撥打另一個電話
- 2. 從另一個表單打開表單並獲取一個值,然後將其傳遞迴第一個表單
- 3. VBA - 在循環中打開表格,然後等待OK單擊
- 4. Android的webview:打開一個頁面等待3秒,然後打開另一個
- 5. 運行PHP,等待;運行JavaScript,等待;然後提交表單?
- 6. 在另一個表單中打開一個表單?
- 7. 從另一個WPF表單打開一個新的WPF表單
- 8. 如何在特定表單關閉後打開表單?該表單是從C#中的另一個項目?
- 9. 我如何關閉表單並打開另一個表單?
- 10. 如何從當前表單打開另一個表單?
- 11. 打開一個iframe後提交表單
- 12. 後表單,等待10秒鐘,然後重定向到
- 13. 打開一個程序,然後等待它
- 14. 表單提交,雖然onClick應該返回false
- 15. JavaScript Asyn返回無需等待響應
- 16. 如何等待表單加載,然後啓動方法?
- 17. 等待,直到功能完成,然後提交表單
- 18. 打開其他表單後禁用按鈕,然後在關閉其他表單後啓用該按鈕
- 19. 如何在單擊按鈕時打開另一個表單?
- 20. 發送表單數據到一個頁面,然後另一個?
- 21. 打開一個新的佈局,然後返回到上一個
- 22. VBA - 在打開用戶表單後返回到子分區
- 23. 表單選擇選項,並響應相應的另一個表單選擇器
- 24. Grand Central Dispatch。如何運行一個異步組,等待,然後運行另一個,再等待,然後完成?
- 25. 當它應該返回一個列表清單時,Prolog返回Out = _G431
- 26. jquery使表單提交等待函數調用的響應
- 27. 等待使用yii2表單的Ajax響應
- 28. 表單頁面並未等待來自javascript的響應sweetAlert?
- 29. 表單響應創建新的Google表格標籤然後Bucketing
- 30. 響應式菜單打開