核心代码如下:这里设置为最大为90个字节,当然也可以设置为文字个数count。
noticeLabel->setVisible(false);
noticeLabel->setStyleSheet("color:red");
noticeLabel->setText(tr("Can only enter 90 bytes"));//注:中文翻译为30个字,英语翻译为90个字符。
inputText->setAcceptRichText(false); //去掉复制文字的颜色字体等属性
inputText->moveCursor(QTextCursor::Start); //不加这个在输入文字之前复制字体大小可能不对,会受复制内容影响,原因未知。
inputText->setStyleSheet("background-color:palette(button);");
inputText->setPlaceholderText(tr("Enter text, up to 90 bytes"));//注:中文翻译为30个字,英语翻译为90个字符。
connect(inputText,&QTextEdit::textChanged,this,[=]{
//qDebug()<<"words = "<<inputText->toPlainText().toLocal8Bit().length();
if(inputText->toPlainText().toLocal8Bit().length() > 90) {
noticeLabel->setVisible(true);
QString textString = inputText->toPlainText().toLocal8Bit().mid(0,90);//一个中文三个字节
inputText->setText(textString);//设置文本内容为限制字节

本文介绍了一种在Qt中限制QTextEdit输入字数的方法,通过监控文本变化并限制其长度,确保用户输入不超过预设的最大值。同时,文章还讨论了如何处理不同字符类型(如中文与英文字符)对字节数的影响。
最低0.47元/天 解锁文章
1764

被折叠的 条评论
为什么被折叠?



