亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Qt實現(xiàn)帶字數(shù)限制的文字輸入框

 更新時間:2022年04月09日 09:34:30   作者:師從名劍山  
這篇文章介紹了Qt實現(xiàn)帶字數(shù)限制文字輸入框的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

核心構(gòu)思

核心的點在于,限制輸入的字數(shù);主要的方法為創(chuàng)建一個組合窗口

img

  • textChanged 這個信號,會在你輸入字符之后發(fā)射,可以連接這個信號,在發(fā)射了信號之后,去獲取當(dāng)前QTextEdit里的內(nèi)容,獲取數(shù)量,然后根據(jù)最大數(shù)量,來選擇是不是需要截取文本;

  • 光標(biāo)的移動的問題。在進行插入時,光標(biāo)要時刻保持在當(dāng)前位置。

  • 文字內(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);

        // 獲取光標(biāo)位置
        QTextCursor cursor = textEdit->textCursor();
        if (position > m_maxWordNum) {
            // 如果當(dāng)前輸入位置為末尾的話,就直接跳到最后一個字符。
            position = m_maxWordNum;
        }
        cursor.setPosition(position);
        textEdit->setTextCursor(cursor);
        currentNum = m_maxWordNum;
    }

    ui->labelCurrentNum->setNum(currentNum);
}

代碼下載請看此處LimitTextEdit

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論