QT怎麼讓文字框只能輸入數字,C 文字框只能輸入數字

2022-06-09 12:40:32 字數 5155 閱讀 3210

1樓:匿名使用者

設定正規表示式.

類似下面的

qregexp

這裡的用法就是用來檢測qstring等字串錯誤的,例如檔名裡面最好就不出現<>|/\:等,所以可以如下定義qregexp rx("[a-za-z0-9\-\\\_]"); 25就是所輸入的字串個數!a-z當然就是a-z,你也可以abcdefghijklm....

等等.\- 就是-

好了,現在可以把這個rx綁入qregexpvalidator.

qregexpvalidator *prevalidotor = new qregexpvalidator(regexp, this);

綁入lineedit :

peditwell->setvalidator(new qregexpvalidator(regexp, this));

常用的:

"^\d+$"  //非負整數(正整數 + 0)

"^[0-9]*[1-9][0-9]*$"  //正整數

"^((-\d+)|(0+))$"  //非正整數(負整數 + 0)

"^-[0-9]*[1-9][0-9]*$"  //負整數

"^-?\d+$"    //整數

"^\d+(\.\d+)?$"  //非負浮點數(正浮點數 + 0)

"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮點數

"^((-\d+(\.\d+)?)|(0+(\.0+)?))$"  //非正浮點數(負浮點數 + 0)

"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //負浮點數

"^(-?\d+)(\.\d+)?$"  //浮點數

"^[a-za-z]+$"  //由26個英文字母組成的字串

"^[a-z]+$"  //由26個英文字母的大寫組成的字串

"^[a-z]+$"  //由26個英文字母的小寫組成的字串

"^[a-za-z0-9]+$"  //由數字和26個英文字母組成的字串

"^\w+$"  //由數字、26個英文字母或者下劃線組成的字串

"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"    //email地址

"^[a-za-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$"  //url

"^(d|d)-((0([1-9]))|(1[1|2]))-(([0-2]([1-9]))|(3[0|1]))$" // 年-月-日

"^((0([1-9]))|(1[1|2]))/(([0-2]([1-9]))|(3[0|1]))/(d|d)$" // 月/日/年

"^([w-.]+)@(([[0-9].[0-9].[0-9].)|(([w-]+.)+))([a-za-z]|[0-9])(]?)$"   //email

"(d+-)?(d-?d|d-?d|^d)(-d+)?"     //**號碼

"^(d|1dd|2[0-4]d|25[0-5]).(d|1dd|2[0-4]d|25[0-5]).(d|1dd|2[0-4]d|25[0-5]).

(d|1dd|2[0-4]d|25[0-5])$"

//ip地址

^([0-9a-f])(-[0-9a-f])$   //mac地址的正規表示式

^[-+]?\d+(\.\d+)?$ //值型別正規表示式

qregexp是qt的正規表示式類.

qt中有兩個不同類的正規表示式.

第一類為元字元.它表示一個或多個常量表示式.

令一類為 轉義字元,它代表一個特殊字元.

一.元字元

. 匹配任意單個字元.例如, 1.3 可能是1. 後面跟任意字元,再跟3

^ 匹配字串首. 例如, ^12可能是123,但不能是312

$ 配字串尾. 例如, 12$可以是312, 當不能是 123

匹配括號內輸入的任意字元.[123]可以為1, 2 或3

* 匹配任意數量的前導字元. 例如, 1*2可以為任意數量個1(甚至沒有), 後面跟一個2

+ 匹配至少一個前導字元. 例如, 1+2必須為一個或多個1, 後跟一個2

? 匹配一個前導字元或為空. 例如 1?2可以為2或這12

二.統配模式

通過 qregexp::setpatternsyntax(qregexp::wildcard);可以將元字元設定為統配模式.

在統配模式下,只有3個元字 符可以使用.他們的功能沒有變化.

? 匹配任意單個字元, 例如, 1?2可以為1,後面跟任意單個字元, 再跟2

* 匹配任意一個字元序列. 例如, 1*2, 可以為1, 後面跟任意數量的字元, 再跟一個2

匹配一個定義的字符集合. 例如, [a-za-z\.]可以匹配 a到z之間任意一個字元和. [^a]匹配出小寫a以外的字元.

三.轉義序列

\. 匹配"."

\^ 匹配"^"

\$ 匹配"$"

\[ 匹配"["

\] 匹配"]"

\* 匹配"*"

\+ 匹配"+"

\? 匹配"?"

\b 匹配響鈴字元,使計算機發出嘟的一聲.

\t 製表符號

\n 換行符號

\r 回車符鉿

\s 任意空格

\xnn 匹配16進製為nn的字元

\0nn 匹配8進位制的nn字元

這些表示式均以\開始, 與c++的轉義字元相同,所以為了定義qregexp中的一個轉義序列,

需要在前面新增兩個\\

2樓:歷媚琴易文

qt有一個類qregexp,正規表示式約定文字框的內容只能是[0-9]就行了

3樓:匿名使用者

從來沒有聽說過有這個方法呢

c# 文字框只能輸入數字

4樓:大野瘦子

**如下:

呼叫textbox的keypress事件

private void txtuserid_keypress(object sender, keypresseventargs e)

//如果輸入的不是數字鍵,也不是回車鍵、backspace鍵,則取消該輸入

if (!(char.isnumber(e.keychar)) && e.keychar!=(char)13 && e.keychar!=(char)8)

e.handled = true;

注意事項

c#文字框輸入限制

//只能輸入數字和小數點和退格鍵

private void txt_keypress(object sender, keypresseventargs e)

if (((int)e.keychar < 48 || (int)e.keychar > 57) && (int)e.

keychar != 8 && (int)e.keychar !

= 46)

e.handled = true;

//只能輸入數字和退格鍵

private void txt_keypress(object sender, keypresseventargs e)

if (!(char.isnumber(e.keychar)) && e.keychar != (char)8)

e.handled = true;

//限制輸入只能為數字

private void txt_keypress(object sender, keypresseventargs e)

if (!(char.isnumber(e.keychar)) && e.keychar != (char)8)

e.handled = true;

//限制輸入不能為中文和全形

private void txt_keypress(object sender, keypresseventargs e)

int chfrom = convert.toint32("4e00", 16);    //範圍(0x4e00~0x9fa5)轉換成int(chfrom~chend)

int chend = convert.toint32("9fa5", 16);

if (e.keychar >= (char)chfrom && e.keychar <= (char)chend)

e.handled = true;

if (e.keychar >= (char)65281 & (int)e.keychar <= (char)65374)

e.handled = true;

//限制輸入只能輸入數字和字母,退格鍵

private void txt_keypress(object sender, keypresseventargs e)

if ((e.keychar >= 'a' && e.keychar <= 'z') || (e.keychar >= 'a' && e.keychar <= 'z')

|| (e.keychar >= '0' && e.keychar <= '9') || (e.keychar == 8))

e.handled = false;

else

e.handled = true;

5樓:

1、首先,預設已經建立好了一個工程。

2、然後在視窗中新增一個標籤控制元件和文字框控制元件,並修改標籤的文字為成績,文字框的name為edtsorce,text為空。

3、然後選擇文字框,並在屬性面板中切換到「事件」選項卡,找到onkeypress事件,點選進入**編輯視窗。

4、然後在開啟的**視窗中寫入以下**。

5、執行後,效果如下,大家可以發現只有按下數字鍵,才會有字元在文字框中顯示出來,其它按鈕都沒有反應。

6、如果大家還想允許小數字出現,並且退格鍵可用,那麼還可以如下圖所示進行**修改。

6樓:優遊自如

呼叫textbox的keypress事件

private void txtuserid_keypress(object sender, keypresseventargs e) }

最好弄個自定義控制元件,繼承textbox,重寫onkeypress事件

如何讓文字框輸入時只能輸入數字09和符號

這些方法是可來以只源允許輸入 0 9 和 這樣我們可以輸入0 9等,但是我們有用的是要求只能輸入正常的數值,這樣判斷不是比較麻煩是不是隻能這麼寫,isnum str string boolean 自定義函式,判斷一個string是不是數值,內容省略procedure tform1.edit1keyp...

正規表示式控制文字框只能輸入字母數字漢字

a za z d u0391 uffe5 正規表示式 只能輸入字母數字漢字 a za z0 9 u4e00 u9fa5 其實 a za z0 9 可以用 w來代替,只是 w還可以匹配一個下劃線,如果必須要求只有數字和字母那還是用 a za z0 9 這個好了 u4e00 u9fa5 匹配中文字元 1...

如何用jquery驗證文字框只能輸入字母數字和下劃線

由數字 26個英文字母或者下劃線組成的字串可用jquery正規表示式 w 驗證 為 var reg w if reg.test input text val 驗證通過 else 驗證失敗 下面給出例項演示 建立html元素 請輸入使用者名稱,限定字母 數字或下劃線的組合 設定css樣式 div.bo...