1. 程式人生 > 其它 >QT的QIntValidator類的使用

QT的QIntValidator類的使用

詳細說明
QIntValidator類提供了一個驗證程式,可確保字串包含指定範圍內的有效整數。

使用示例:


  QValidator *validator = new QIntValidator(100, 999, this);
  QLineEdit *edit = new QLineEdit(this);

  // the edit lineedit will only accept integers between 100 and 999
  edit->setValidator(validator);

下面我們提供一些驗證器示例。實際上,它們通常將與上面的示例中的視窗小部件相關聯。

 QString str;
int pos = 0; QIntValidator v(100, 900, this); str = "1"; v.validate(str, pos); // returns Intermediate str = "012"; v.validate(str, pos); // returns Intermediate str = "123"; v.validate(str, pos); // returns Acceptable str = "678"; v.validate(
str, pos); // returns Acceptable str = "999"; v.validate(str, pos); // returns Intermediate str = "1234"; v.validate(str, pos); // returns Invalid str = "-123"; v.validate(str, pos); // returns Invalid str = "abc"; v.validate(str, pos)
; // returns Invalid str = "12cm"; v.validate(str, pos); // returns Invalid

請注意,值999返回中級。由等於或小於最大值的數字組成的值被視為中間值。這是因為阻止數字不在範圍內的數字不一定是最後輸入的數字。這也意味著中間數可以具有前導零。
可以通過setRange()一次呼叫來設定最小值和最大值,或者分別通過setBottom()和setTop()來設定最小值和最大值。
QIntValidator使用其locale()來解釋數字。例如,在阿拉伯語語言環境中,QIntValidator將接受阿拉伯數字。
注意:在locale()上設定的QLocale :: NumberOptions也影響數字的解釋方式。例如,由於預設情況下未設定QLocale :: RejectGroupSeparator,因此驗證程式將接受組分隔符。因此,建議使用QLocale :: toInt()獲得數值。