我有一個QStackedWidget與幾個QPushButton按鈕。小部件的父小部件是QMainWindow。在QStackedWidget裏面我也有一些QLineEdit。我想要做的事很簡單:驗證包含文本框的表單,以及是否可以調用將處理數據的自定義類的函數。類的實例是在我的QMainWindow類中創建的。調用該類方法的最佳方法是什麼?我應該使用Qt的信號/插槽機制將我的自定義類連接到QStackedWidget中的小部件實例嗎?使用Qt調用父窗口小部件功能
1
A
回答
3
您可以根據需要多次從QValidator中派生出來,並在需要驗證的每個字段上安裝驗證程序。這樣,您可以確保該字段爲空或包含有效的條目。
在處理您的數據之前,請確保所有適當的字段都有數據,並保證您擁有有效的表單。
將數據從表單傳遞給某些表單數據使用者的典型方法是創建一箇中間人類來存儲數據。在表單被驗證之後,該類的一個實例被填充,然後實例被傳遞給使用者。這樣,如果表單發生變化,則只要收集了相同的數據,您的客戶就會與這些更改分離。
一般規則是針對對象接口,而不是它們的實現。無論你是做sig/slot還是直接函數調用都沒有關係,只要你記住一些事情:
sig/slot不保證呼叫順序,發射信號本質上意味着任何人都可以看到這個對象可以連接到它的信號並選擇這個改變。如果你的必須有的子組件處理你的表單數據的保證順序,那麼爲什麼即使給維護程序員選項搞亂?
其次,應該沒有問題其中對象所在。有一天,當你的數據消費者變得非常複雜,並且你想基於某種場景(也許是用戶權限,或者今天的日期,或者當前的溫度,我不知道!)來捕捉不同的數據時,那麼你將要想做一個重新拱門。如果將數據傳遞給消費者的邏輯高度依賴於表單中以某種方式存在的對象,那麼你就錯了。
相關問題
- 1. Qt - 調用窗口小部件父窗口
- 2. 調用父窗口功能的JavaScript
- 3. 在子窗口中不能調用父窗口的功能
- 4. PyQt - 調整父級窗口小部件的子窗口大小
- 5. 用於滾動窗口的qt小部件使端口能夠輸出終端
- 6. 如何訪問qt上的父窗口小部件?
- 7. Qt創建窗口小部件
- 8. Qt的刪除窗口小部件
- 9. Qt - 使用QDataWidgetMapper在窗口小部件上映射兩個表
- 10. Qt:在子窗口小部件上使用QPainter
- 11. 使用QT Creator僅樣式化提升窗口小部件
- 12. Android應用程序窗口小部件的編程功能
- 13. 如何清除父窗口小部件中的所有窗口小部件?
- 14. 重新使用窗口調整大小/加載功能
- 15. 重置窗口大小調整功能
- 16. 使用python窗口小部件
- 17. QT C++傳遞小部件功能
- 18. 從父窗口和父窗口提交功能給父窗口和iframe
- 19. 允許父窗口調用不同域的子iframe的功能
- 20. 防止QLabel調整父級窗口小部件
- 21. 調整無窗口小部件的窗口大小
- 22. 如何在窗口中調整窗口小部件的大小
- 23. 事件的回調窗口小部件
- 24. 從父窗口調用JavaScript
- 25. 如果我使用grid(),爲什麼窗口大小調整時窗口小部件不能縮放?
- 26. Qt/C++:標識事件處理程序中的父窗口小部件(信號)
- 27. 如何添加複合窗口小部件:這個窗口小部件的父窗口沒有實現HasWidgets
- 28. Qt的圖形用戶界面的創建,窗口小部件調整
- 29. 使用Javascript從彈出窗口調用父窗口函數
- 30. 使用Qt,如何使用鼠標移動事件向上或向左調整窗口小部件
驗證數據後,我必須將這些數據傳遞給自定義類。在這種情況下,信號/插槽系統是否合適?還是應該使用別的東西? – Stefano 2012-04-13 13:22:37
@Stefano我認爲我不明白什麼樣的信號/時隙在數據驗證之後與此有關。無論你想要什麼,你都可以做到。確定何時查看並查看所有字段中是否有有效數據可能需要信號/插槽;這取決於你的架構。 – 2012-04-13 13:25:40
基本上,將驗證數據傳遞給在父QWidget類中具有自己的實例的自定義類方法的最佳方式是什麼? – Stefano 2012-04-13 13:53:40