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

网站说明书的详细说明wordpress 判断pc访问

网站说明书的详细说明,wordpress 判断pc访问,佛山网站建设企业推荐,如何对网站页面进行优化问题 在实际开发中#xff0c;有时候需要对输入进行限制#xff0c;一是更加合理#xff0c;二是防止出现误操作。 比如#xff1a; 使用Qt进行应用程序开发时#xff0c;对单行编辑框QLineEdit控件#xff0c;设置只可输入十六进制。 限制输入的方式常用且经典的是使用…问题 在实际开发中有时候需要对输入进行限制一是更加合理二是防止出现误操作。 比如 使用Qt进行应用程序开发时对单行编辑框QLineEdit控件设置只可输入十六进制。 限制输入的方式常用且经典的是使用正则表达式。 示例1设置QLineEdit输入十六进制使用QRegExpValidator进行设置 设置QLineEdit只可输入十六进制且为了不产生歧义编辑框前两个字符为”0x” 包含头文件 #include QRegExp // 正则表达式类 #include QRegExpValidator // 验证器正则表达式 ui-lineEdit-setText(0x);ui-lineEdit-setValidator(new QRegExpValidator(QRegExp(^0x[0-9a-f]$ )));^0x[0-9a-f]$ 是一个正则表达式我们可以分步骤地解释它;至于没用到的就暂时不说不然容易混淆视听 ^: 匹配字符串的开始。当此字符位于正则表达式的开始处时它确保模式必须从字符串的开始处匹配。0x: 这部分匹配字符串中的0x文字。 [0-9a-f]: 这是一个字符集它匹配任何一个在0到9或者a到f小写之间的字符。简单地说它匹配任何一个十六进制字符。: 表示前面的模式在这里是[0-9a-f]可以出现一次或多次。$: 匹配字符串的结束。当此字符位于正则表达式的末尾时它确保模式必须匹配到字符串的末尾。 因此整个正则表达式^[0-9a-f]$匹配的是一个完全由十六进制字符组成的字符串。这意味着如果一个字符串从开始到结束都是由十六进制字符组成的那么这个正则表达式就会匹配成功。 所以这个表达式刚好符合咱们的需求。 为了防止误删所以在QLineEdit的void textEdited(const QString text)的槽函数内添加 QString str arg1;if(str.left(2).compare(QLatin1String(0x)) ! 0){str QStringLiteral(0x);ui-lineEdit_4-setText(str);}这样确保编辑框前两位一直是”0x”。 示例2设置QLineEdit输入十六进制使用QRegularExpressionValidator进行设置 除了使用QRegExpValidator外还可以使用QRegularExpressionValidator 而且在Qt 5中新的qregulareexpression类提供了正则表达式的Perl兼容实现建议代替QRegExp。 ui-lineEdit-setText(0x);ui-lineEdit-setValidator(new QRegularExpressionValidator(QRegularExpression(^0x[0-9a-f]$)));限制输入位数 如限制只能输入3个十六进制位数 ui-lineEdit-setText(0x);ui-lineEdit-setValidator(new QRegularExpressionValidator(QRegularExpression(^0x[0-9a-f]{1,3}$)));^0x[0-9a-f]{1,3}$ ^: 匹配字符串的开始。0x: 这部分匹配字符串中的0x文字。[0-9a-f]: 这是一个字符集它匹配任何一个在0到9或者a到f小写之间的字符。简单地说它匹配任何一个十六进制字符。{1,3}: 这是一个数量修饰符它表示前面的模式在这里是[0-9a-f]可以出现1到3次。$: 匹配字符串的结束。 ^0x[0-9a-f]{1,3}$的意思是一个以0x开头并且其后紧跟1到3个十六进制字符的字符串。字符串以0x开始并且从0x之后开始有1到3个十六进制字符然后字符串结束那么这个正则表达式就会匹配成功。例如“0xa”、0x12和0x123都是与该正则表达式匹配的字符串但0x或0x1234则不匹配。 当输入位数不足时前面填充’0’ 查询QString类帮助文档发现有两个成员方法符合需求 1.inline QString QString::arg(int a, int fieldWidth, int base, QChar fillChar) const; QString strArg ui-lineEdit-text().trimmed();QString str QString(%1).arg(strArg);str QString(0x%1).arg(str.toInt(0, 16), 3, 16, QChar(0));ui-lineEdit-setText(str);如输入 f输出就是 0x00f2.QString rightJustified(int width, QChar fill QLatin1Char( ), bool trunc false) const Q_REQUIRED_RESULT; 最后一个参数是如果truncate为false且字符串的size()大于width则返回的字符串是该字符串的副本。 如果truncate为true并且字符串的size()大于width则结果字符串将在位置width处被截断。 QString str QString(%1%2%3%4%5%6%7%8%9).arg(a, b, c, d, e, f, g, h, i);bool bTrunc false;str str.rightJustified(10, QChar(0), bTrunc);输出就是 0abcdefghi除了以上两种方式外哈可以自己判断进行填充。 QString str 0xfe;if(str.toInt(0, 16) 0x10){str QString(0x00%1).arg(QString::number(str.toInt(0, 16), 16));}else if(str.toInt(0, 16) 0x100){str QString(0x0%1).arg(QString::number(str.toInt(0, 16), 16));}else if(str.toInt(0, 16) 0x1000){str QString(0x%1).arg(QString::number(str.toInt(0, 16), 16));}qDebug().noquote() str : str; // 0x0fe每两位字符以空格隔开 当十六进制输入位数多时如abcdefg这样会显示拥挤没有ab cd ef g看起来整洁。 如何让每两个字符以空格隔开呢 提供以下4中方式 方式1进行位数判断每次都取两位进行空格填充 QString strArg ui-lineEdit-text().trimmed();// 填充QString str QString(0x%1).arg(strArg.toInt(0, 16), 3, 16, QChar(0));// 如0xaabbccdde 输出 0x aa bb cc dd eQString strSour str;// 替换掉空格strSour strSour.replace( , );QString strRes ; // 结果int strLen strSour.count();if(strSour.left(2).compare(QLatin1String(0x)) 0){if(strLen 2){// 判断奇偶if(0 strLen%2){// 取最后2位之前的子串for(int i 0; i strLen/2-1; i){QString strTmp strSour.mid(i*2, 2);strRes strTmp ;}// 加上的子串strRes strSour.right(2);}else{// 取最后1位之前的子串for(int i 0; i strLen/2-1; i){QString strTmp strSour.mid(i*2, 2);strRes strTmp ;}// 加上的子串strRes strSour.right(1); // 加上最后的一位}ui-lineEdit-setText(strRes);}}else{// send error}方式2优化方法一 去掉奇偶判断只判断最后一位或者两位代码立刻优雅起来。 QString strArg ui-lineEdit-text().trimmed();// 填充QString str QString(0x%1).arg(strArg.toInt(0, 16), 3, 16, QChar(0));// 如0xaabbccdde 输出 0x aa bb cc dd eQString strSour str;// 替换掉空格strSour strSour.replace( , );QString strRes ; // 结果int strLen strSour.count();if(strSour.left(2).compare(QLatin1String(0x)) 0){if(strLen 2){for(int i 0; i strLen/2-1; i){QString strTmp strSour.mid(i*2, 2);strRes strTmp ;}// 根据奇偶加上最后的1或者2位strRes strSour.right(strLen%2 0 ? 2 : 1);ui-lineEdit-setText(strRes);}}else{// send error}方式3使用while循环 QString strArg ui-lineEdit-text().trimmed(); // aabbc// 填充QString str QString(0x%1).arg(strArg.toInt(0, 16), 3, 16, QChar(0)); // 0xaabbcstr str.replace( , );int nLen str.length();int nIndex 0;while( 2*(nIndex1) nLen ){str.insert(2*(nIndex1), );nIndex;}ui-lineEdit-setText(str); // 0x aa bb c方式4使用正则表达式推荐 QString strArg ui-lineEdit-text().trimmed();// 填充QString str QString(0x%1).arg(strArg.toInt(0, 16), 3, 16, QChar(0));str str.replace( , ); // 0xaabbccddeQRegExp regex((.{2})); // 正则表达式匹配任意两个字符// 使用正则表达式进行替换操作将匹配到的两个字符之间添加空格QString result str.replace(regex, \\1 );ui-lineEdit-setText(result); // 0x aa bb cc dd e结论 一个人如果没有梦想跟无忧无虑有什么区别。
http://www.dnsts.com.cn/news/260989.html

相关文章:

  • 51zwd一起做网站什么情况下网站需要备案
  • 对整个网站做词频分析wordpress 翻译插件
  • 可以自己做网站的网址计算机网页怎么制作
  • 管网建设网站wordpress菜单导航插件
  • 建网站用什么工具waf防火墙排名
  • 十堰做网站最好的公司怎么做网站一个平台
  • seo网站是什么意思保定网站制作哪家好建设
  • 企业网站 下载seo 网站结构优化
  • 动态交互图网站爱站网长尾词挖掘工具
  • 网站建设大数据服务案例怎么做网站的百度权重
  • 网店运营在哪里学比较好些竹子建站seo设置怎么做
  • 泗阳做网站懂得做网站还可以做什么兼职
  • 中信建设有限责任公司待遇怎么样长沙优化网站关键词
  • 印刷网站建设 优帮云校园跑腿小程序源码
  • 上海家装10强名单wordpress 留言 seo no
  • 制作网站软件手机沂南网站优化
  • 吉林平台网站建设哪里有wordpress网页打开慢
  • 网站设计在线郑州市住房和城乡建设厅官网
  • 做网站需要哪些东西淄川区住房和城乡建设局网站
  • 网站二级域名设置广东成都网站建设推广公司
  • 沈阳微网站制作申请百度收录网址
  • 南宁 网站建设 公司wordpress 错误:cookies因预料之外的输出被阻止.
  • 岳阳平台网站制作如何进行网站宣传推广
  • 邢台网站制作怎么样网站请人做要多少钱
  • 网站备案增加域名济南物流行业网站建设工具
  • wordpress4.0.1珠海百度快速优化
  • 做物流网站电话ajax登陆wordpress
  • 壁画网站建设怎么做消费信贷网站
  • 北京网站建设培训学校单页面网站设计
  • 郑州住房和城乡建设部网站企业qq下载官网下载安装