如何限定QTextEdit中字數的個數

2021-06-19 00:24:25 字數 1721 閱讀 7145

關於這個它的原理應該很容易理解當然也是很容易實現出來的,這裡主要是為了讓自己更加容易記住,因此將它寫下。

首先要明白如何獲取qtextedit中的字數,然後要做的就是遮蔽它的輸入,就可以啦!

對於textedit中的字數,可以根據它自身的textchanged的訊號的傳送來進行捕獲它字數發生改變,

qtextedit textedit = new qtextedit;

connect(textedit,signal(textchanged()),this,slot(maxlength()));

void maxlength()

if(textedit->toplaintext().length() > 30)//對你要設的最大字數進行設定

//根據測試組提供的bug發現這個問題存在很明顯的缺陷,就是當你一直按字元或者數字的時候超過30個以後就會將原來的內容進行清除,重新開始顯示,發現這真是個很致命的不足呀!所以決定把這個方案給修改啦!,給大家帶來不便,還往原諒。

仔細想想,這個要的結果是什麼,首先只能給你30個字的顯示,然後呢?30個後就不讓你顯示,讓你編輯無效。

所以當你超過30的時候擷取你前面的30個字,然後將滑鼠放到最後面,這樣就ok 啦!那就這麼做吧!

if(textedit->toplaintext().length() > 30)

qstring strtext = textedit->toplaintext().left(30); //擷取全面30個字元

textedit->settext(strtext);

//設定滑鼠位置,將滑鼠放到最後的地方

qtextcursor cursor = textedit->textcursor();

cursor.setposition(30);

textedit->settextcursor(cursor);

return;

對於這個的編輯,發現還是存在一些不理想的地方!就是在我的游標在中間的時候進行編輯的時候會出現我還是可以寫下去,會把旁邊的給沖掉,導致的是被破壞掉!因此也是很有必要對這個進行修改的!

修改的方法也是差不多的,就是把你重新新增的那個給乾掉就可以啦!呵呵。。。

重新來吧!還是對textchange做乙個槽和它想連線

void maxlength()

qstring strtext = textedit->toplaintext();

int length = strtext.count();

if(length > maxlength)

這樣就搞定啦!

還有對於qlabel 中自動換行的一些注意到

首先對於qlabel可以通過setwordwrap()來設定它自動換行,然後通過設定它的align為topalign就可以更加顯示的出換行的效果,

當然你一定得保證你的高度能夠放得下多行,這個可以通過setfixedheight()來進行處理.接下來只要將你的文字設定進去就可以啦!

qlable *label = new qlabel();

label->setfixedsized(100,40);

//label->setstylesheet(「qlabel」);

label->setwordwrap(true);

label->setalignment(qt::aligntop);

label->settext(tr(" welcome to qt4,try you best .that's all .thank you !"));

QTextEdit中的 ufffc問題

qtextedit踩過的坑 qstring textinput ui m textinput toplaintext 上面這句 可以獲取文字內容,但是如果qtextedit中只包含一張的時候,呼叫toplaintext 其實它會返回乙個字元,ios中解釋的原因是 在實現textview的富文字時,如...

Qt中QTextEdit顯示字串

為了在文字框中顯示字串,我們常用這樣兩個函式實現 1.ui recvtextedit insertplaintext temp temp為字串臨時儲存變數 2.這兩種方法是有區別的 關於insertplaintext 就不解釋很多了,反正就是新增什麼就顯示什麼。所以推薦使用第一種方法。另外為了實時的...

java中的super限定

super的用法 1 如果需要在子類中呼叫父類中被覆蓋的例項方法,可以用super限定來呼叫父類中被覆蓋的方法。當然,也可以呼叫從父類繼承的例項變數。public void calloverridedmethod 注 super限定用於限定該物件呼叫它從父類繼承的例項變數或者方法,但是super不能...