最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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ā)射了信號之后,去獲取當前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)文章

最新評論

永嘉县| 湾仔区| 靖边县| 灵丘县| 东至县| 察隅县| 汉川市| 宝应县| 婺源县| 社旗县| 盐池县| 南澳县| 天气| 建阳市| 保亭| 德庆县| 曲阳县| 盐津县| 桐乡市| 东丽区| 玛沁县| 同心县| 霍邱县| 旬阳县| 宁安市| 禹州市| 盐津县| 雷州市| 西吉县| 浦北县| 那坡县| 湘阴县| 师宗县| 巨野县| 乌兰察布市| 藁城市| 江北区| 贵溪市| 鄂伦春自治旗| 额尔古纳市| 大新县|