我有一個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 Widget填充父窗口小部件?
- 8. 如何訪問qt上的父窗口小部件?
- 9. Qt的刪除窗口小部件
- 10. Qt創建窗口小部件
- 11. QT中的透明窗口小部件
- 12. 使用工廠創建QT提升窗口小部件
- 13. 使用QT Creator僅樣式化提升窗口小部件
- 14. Qt - 使用QDataWidgetMapper在窗口小部件上映射兩個表
- 15. 使用Qt Designer升級頂級窗口小部件
- 16. QT Creator中使用的窗口小部件的名稱
- 17. Qt:在子窗口小部件上使用QPainter
- 18. Qt選項卡窗口小部件添加角組窗口小部件
- 19. Android應用程序窗口小部件的編程功能
- 20. 父窗口調整大小?
- 21. 當調整父窗口小部件時保持縱橫比調整子窗口小部件
- 22. 如何清除父窗口小部件中的所有窗口小部件?
- 23. 沒有佈局的父窗口小部件上的中心窗口小部件
- 24. 父窗口小部件如何定位其子窗口小部件?
- 25. 重新使用窗口調整大小/加載功能
- 26. 使用jquery調整窗口大小的功能
- 27. jQuery調整窗口大小功能
- 28. 重置窗口大小調整功能
- 29. QT在窗口中最大化窗口小部件
- 30. 如何禁用父窗口小部件中的所有用戶輸入窗口小部件(按鈕,條目..)?
驗證數據後,我必須將這些數據傳遞給自定義類。在這種情況下,信號/插槽系統是否合適?還是應該使用別的東西? – Stefano 2012-04-13 13:22:37
@Stefano我認爲我不明白什麼樣的信號/時隙在數據驗證之後與此有關。無論你想要什麼,你都可以做到。確定何時查看並查看所有字段中是否有有效數據可能需要信號/插槽;這取決於你的架構。 – 2012-04-13 13:25:40
基本上,將驗證數據傳遞給在父QWidget類中具有自己的實例的自定義類方法的最佳方式是什麼? – Stefano 2012-04-13 13:53:40