欢迎来到代码驿站!

C代码

当前位置:首页 > 软件编程 > C代码

Qt实现带字数限制的文字输入框

时间:2023-01-13 11:04:04|栏目:C代码|点击:

核心构思

核心的点在于,限制输入的字数;主要的方法为创建一个组合窗口

img

  • textChanged 这个信号,会在你输入字符之后发射,可以连接这个信号,在发射了信号之后,去获取当前QTextEdit里的内容,获取数量,然后根据最大数量,来选择是不是需要截取文本;

  • 光标的移动的问题。在进行插入时,光标要时刻保持在当前位置。

  • 文字内容的行高。这里请看解决Qt设置QTextEdit行高的问题

代码实现

// 首先连接信号
connect(ui->textEdit, &QTextEdit::textChanged,
            this, &LimitTextEdit::slot_handleInput);

void LimitTextEdit::slot_handleInput()
{
    auto textEdit = static_cast<QTextEdit*>(sender());

    int currentNum = textEdit->toPlainText().length();
    // 判断是不是超出了字数限制
    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

上一篇:C语言实现酒店客房管理系统课程设计

栏    目:C代码

下一篇:没有了

本文标题:Qt实现带字数限制的文字输入框

本文地址:http://www.codeinn.net/misctech/223621.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有