我有一個相當複雜的對話框,輸入是帶有不同允許範圍的數字。我想知道什麼是最乾淨的模式,以保證我的QLineEdits具有正確的輸入值。檢查QT輸入的輸入
這樣做的顯而易見的方式似乎檢查用戶單擊確定按鈕時的輸入值。我遇到的問題是,某些GUI控件取決於其他輸入的值。因此,通過讓我爲所有輸入值錯誤的情況分支控件的邏輯,代碼似乎變得有點令人討厭。
這種情況有沒有好的模式?
我在考慮繼承QLineEdit並使用focusOutEvent檢查對話框的輸入。如果輸入不正確,我會默認值並觸發邏輯。這將保證每個lineedit都負責它自己的驗證。這樣做是否有明顯的缺陷?
QValidators真棒,問題是當他們的狀態是中間的。
只是爲了澄清 - 因爲_「的輸入是具有不同的允許範圍的數字」_,那麼你正在使用'QIntValidator'爲那些,對吧? –
@TobySpeight我在任何地方都使用驗證器,但是例如如果範圍在10到20之間,用戶仍然需要輸入一個數字。這打破了邏輯。 – Mac
也許我不明白 - 用戶如何輸入10到20之間沒有一位數字作爲部分輸入?或者你在問行編輯發出
'editEdited()''editingFinished()'信號時如何檢查驗證器? –