当前位置: 首页 > news >正文

惠东住房建设局网站哈尔滨网站建设市场

惠东住房建设局网站,哈尔滨网站建设市场,合肥建站方案,怎么做qq二维码网站setMaxLength(int)只能用来限制输入的字符个数 QLineEdit *editor new QLineEdit(parent); editor->setMaxLength(32); 1、如果是单字节字符,如数字,字母等,字符数正好等于字节数 2、如果是多字节字符,UTF8编码时&#xff0…

setMaxLength(int)只能用来限制输入的字符个数

 QLineEdit *editor = new QLineEdit(parent);

 editor->setMaxLength(32);

1、如果是单字节字符,如数字,字母等,字符数正好等于字节数

2、如果是多字节字符,UTF8编码时,汉字一般占用3个字节,GBK编码时,汉字占用2个字节。

UTF-8 编码简介
UTF-8 是一种变长编码,可以表示 Unicode 字符集中的所有字符。UTF-8 中字符的长度可以从1到4个字节不等:

单字节字符(ASCII字符):以 0xxxxxxx 开头。
多字节字符:
第一个字节(起始字节)以 110xxxxx、1110xxxx 或 11110xxx 开头,表示接下来还有多少个延续字节。
延续字节(后续字节)都以 10xxxxxx 开头。

有时候我们想根据字节数对输入框禁止截断,超过32字节就不显示或者禁止输入

输入框内可以输入英文、数字和汉字以及其它字符

如果我们只设置setMaxLength(32),可以输入32个汉字,32个汉字明显不等于32个字节

QString truncateToByteLimit(const QString &text, int maxBytes)//对UTF8编码的汉字或者单字符截断
{QByteArray utf8Text = text.toUtf8();if (utf8Text.size() <= maxBytes){return text;}// 截断到指定的最大字节数,确保不破坏字符int byteCount = 0;for (int i = 0; i < utf8Text.size(); ++i){byteCount++;// 检查是否是多字节字符的开始,并且是否已经达到了最大字节数,非单字节if ((utf8Text[i] & 0xC0) != 0x80 && byteCount >= maxBytes && (utf8Text[i] & 0x80) != 0){// 如果当前字节不是延续字节并且超过了最大字节数,则在此处截断return QString::fromUtf8(utf8Text.left(i));}else if((utf8Text[i] & 0xC0) == 0x80 && byteCount >= maxBytes)//延续字符{if((utf8Text[i-1] & 0xC0) != 0x80 && i>0 && (utf8Text[i-1] & 0x80) != 0)//开始字符{return QString::fromUtf8(utf8Text.left(i-1));}else if( i>0 && (utf8Text[i-1] & 0x80) == 0)//单字符,这种情况可以不用判断{return QString::fromUtf8(utf8Text.left(i));}}else if((utf8Text[i] & 0x80) == 0 && byteCount > maxBytes)//单字符{return QString::fromUtf8(utf8Text.left(i));}}// 如果所有字符都符合限制,返回原始文本return QString::fromUtf8(utf8Text);
}

使用:绑定QLineEdit的信号textChanged(),并在槽函数进行处理

QByteArray QString::toUtf8() const  返回的是字符串所占用的字节数


connect(lineEditor, &QLineEdit::textChanged, [lineEditor](const QString &text) {if (text.toUtf8().size() > lineEditor->maxLength()) {// 如果超过限制,截断文本QString truncatedUtf8 = truncateToByteLimit(text,lineEditor->maxLength());lineEditor->setText(truncatedUtf8);}});

http://www.yayakq.cn/news/154799/

相关文章:

  • 天津企业网站建设价格长春企业宣传片制作公司
  • 怎样提高网站的流量iis7建设网站
  • 一台服务器做两个网站吗姑苏区最新通告
  • 怎么做wp网站东莞正规的人才市场
  • 医疗医院网站建设网络舆情分析工具
  • 很多年前的51网站phpcms漏洞
  • 泗县建设局网站资讯类网站建设
  • 某企业网站建设规划书wordpress ip无法访问
  • 做熟食的网站美食网站知名品牌形象策划公司
  • 做 暧视频在线观看网站海口网站建设公司哪家好
  • 惠山网站建设网站建设招聘岗位
  • 云南网站备案难吗个人网站不备案可以吗
  • C语言开发网站开发语言网站建设的公司联系方式
  • 做文库网站怎么赚钱吗互联网广告投放公司
  • 注册网站帐号注销新开传奇网站站
  • 酒店预订网站模板竹溪县网站集约化建设
  • 福州手游网站建设一级a做爰片_相关网站
  • 公司网络优化方案网站推广与搜索引擎优化
  • 网站建设 技术团队介绍ftp网站目录
  • 合肥建站平台前端培训
  • 网站建设的版块重庆网站制作机构
  • 国外网站建设的发展明星做代言的购物网站0
  • 南京网站建dw做个人简历网页怎么做
  • wordpress小说插件深圳做网站的公司搜行者seo
  • 音乐 版权 做视频网站用哪个网站做相册视频文件夹
  • 商丘做网站建设wordpress首页显示当前时间
  • 网站建设好多钱wordpress重新设置域名
  • 大埔县住房和城乡规划建设局网站能制作网页的软件有哪些
  • 淘宝店网站论坛怎么做公司网站是怎么样的
  • 荆州做网站公司wordpress无法连接数据库