Qt實現(xiàn)帶字數(shù)限制的文字輸入框
核心構(gòu)思
核心的點在于,限制輸入的字數(shù);主要的方法為創(chuàng)建一個組合窗口

textChanged這個信號,會在你輸入字符之后發(fā)射,可以連接這個信號,在發(fā)射了信號之后,去獲取當前QTextEdit里的內(nèi)容,獲取數(shù)量,然后根據(jù)最大數(shù)量,來選擇是不是需要截取文本;光標的移動的問題。在進行插入時,光標要時刻保持在當前位置。
文字內(nèi)容的行高。這里請看解決Qt設(shè)置QTextEdit行高的問題
代碼實現(xiàn)
// 首先連接信號
connect(ui->textEdit, &QTextEdit::textChanged,
this, &LimitTextEdit::slot_handleInput);
void LimitTextEdit::slot_handleInput()
{
auto textEdit = static_cast<QTextEdit*>(sender());
int currentNum = textEdit->toPlainText().length();
// 判斷是不是超出了字數(shù)限制
if (currentNum > m_maxWordNum) {
QString text = textEdit->toPlainText();
text = text.mid(0, m_maxWordNum);
int position = textEdit->textCursor().position();
textEdit->setText(text);
// 獲取光標位置
QTextCursor cursor = textEdit->textCursor();
if (position > m_maxWordNum) {
// 如果當前輸入位置為末尾的話,就直接跳到最后一個字符。
position = m_maxWordNum;
}
cursor.setPosition(position);
textEdit->setTextCursor(cursor);
currentNum = m_maxWordNum;
}
ui->labelCurrentNum->setNum(currentNum);
}代碼下載請看此處LimitTextEdit
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
淺談C++的語句語法與強制數(shù)據(jù)類型轉(zhuǎn)換
這篇文章主要介紹了淺談C++的語句語法與強制數(shù)據(jù)類型轉(zhuǎn)換,是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-09-09
C++實現(xiàn)Armadillo庫與OpenCV庫之間的數(shù)據(jù)格式轉(zhuǎn)換
在C++領(lǐng)域,數(shù)據(jù)格式轉(zhuǎn)換是常見且關(guān)鍵的任務(wù),尤其是在使用多個不同的庫進行復(fù)雜的數(shù)據(jù)處理時,Armadillo和OpenCV是兩個在科學(xué)計算和計算機視覺領(lǐng)域非常受歡迎的庫,下面我們將詳細探討如何在C++中實現(xiàn)Armadillo庫與OpenCV庫之間的數(shù)據(jù)格式轉(zhuǎn)換,需要的朋友可以參考下2025-03-03
C語言的isatty函數(shù)和ttyname函數(shù)以及sendmsg函數(shù)用法
這篇文章主要介紹了C語言的isatty函數(shù)和ttyname函數(shù)以及sendmsg函數(shù)用法,是C語言入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-09-09
基于OpenCV實現(xiàn)的人臉簽到系統(tǒng)源代碼
本文從實際背景和需求出發(fā),采用人臉識別簽到考勤改變了傳統(tǒng)人工檢驗的做法,極大提高了組織效率和辦事能力,這篇文章主要給大家介紹了關(guān)于如何基于OpenCV實現(xiàn)的人臉簽到系統(tǒng)的相關(guān)資料,需要的朋友可以參考下2024-04-04
C++基于遞歸和非遞歸算法判定兩個二叉樹結(jié)構(gòu)是否完全相同(結(jié)構(gòu)和數(shù)據(jù)都相同)
這篇文章主要介紹了C++基于遞歸和非遞歸算法判定兩個二叉樹結(jié)構(gòu)是否完全相同,若判斷二叉樹的結(jié)構(gòu)和數(shù)據(jù)都相同則為完全相同.涉及C++二叉樹的創(chuàng)建、遍歷、比較等相關(guān)操作技巧,需要的朋友可以參考下2017-05-05

