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

C++ Qt练习项目 QChar功能测试

个人学习笔记

代码仓库

GitCode - 全球开发者的开源社区,开源代码托管平台

新建项目

设计UI

1、拖入group box去掉名字

2、拖入2个LineEdit

3、拖入两个Label

4、拖入两个PushButton

5、点栅格布局

1、拖入GroupBox

2、拖入4个PushButton

3、点栅格布局

1、拖入GroupBox,改名为”显示结果“

2、拖入plainTextEdit

3、点栅格布局

4、拖入GroupBox,改名为”QChar特性判断“

5、拖入9个CheckBox

6、点栅格布局

实现UI功能

在按钮“每个字符的Unik”上右键 “转到槽”—— 点击”clicked“

生成函数

在widget.cpp中编写代码

void Widget::on_btnGetChars_clicked()
{QString str=ui->editStr->text();if(str.isEmpty()) return;for(qint16 i=0;i<str.size();i++){QChar ch=str.at(i);char16_t uniCode=ch.unicode();QString chStr(ch);QString info=chStr+QString::asprintf("\t,Unicode编码=0x%X",uniCode);ui->plainTextEdit->appendPlainText(info);}
}

编辑清空文本功能,在widget.cpp中编写代码

void Widget::on_btnClear_clicked()
{ui->plainTextEdit->clear();
}

“单个字符特性判断”功能编写

void Widget::on_btnCharJudge_clicked()
{QString str=ui->editChar->text();if(str.isEmpty()) return;QChar ch = str.at(0);char16_t uniCode=ch.unicode();QString chStr(ch);QString info=str+QString::asprintf("\t,Unicode编码=0x%X",uniCode);ui->plainTextEdit->appendPlainText(info);ui->chkDigit->setChecked(ch.isDigit()); // 是否为数字1-9ui->chkLetter->setChecked(ch.isLetter()); // 是否为字母ui->chkLetterOrNumber->setChecked(ch.isLetterOrNumber()); // 是否为字母或数字ui->chkUpper->setChecked(ch.isUpper()); // 是否为大写ui->chkLower->setChecked(ch.isLower()); // 是否为小写ui->chkMark->setChecked(ch.isMark()); // 是否为符号ui->chkSpace->setChecked(ch.isSpace()); // 是否为空白符ui->chkSymbol->setChecked(ch.isSymbol()); // 是否为符号ui->chkPunct->setChecked(ch.isPunct()); // 是否为标点符号
}

实现“与Latin1的转换”的功能

void Widget::on_btnConvLatin1_clicked() // 替换字符串
{QString str = "Dimple";ui->plainTextEdit->appendPlainText(str);QChar chP='p'/*QChar('p')*/;str[0]=chP;ui->plainTextEdit->appendPlainText("\n"+str);}

实现“与UTF-16的转换”按钮功能

void Widget::on_btnConvUTF16_clicked()
{QString str = "Hello,北京";ui->plainTextEdit->appendPlainText(str);QString qb = "青岛";str[6]=qb.at(0)/*QChar(0x9752)*/; // 北京换成青岛str[7]=QChar(0x5C9B);ui->plainTextEdit->appendPlainText("\n"+str);
}

实现“QChar比较和替换”功能

void Widget::on_btnCompare_clicked()
{QString HuStr = "河to湖";QChar He = QChar::fromUcs2(HuStr[0].unicode());QChar Hu = QChar(HuStr[3].unicode());QString str = "他们来自河南或河北";ui->plainTextEdit->appendPlainText(str);for(int i=0;i<str.size();i++){if(str.at(i)==He)str[i]=Hu;}ui->plainTextEdit->appendPlainText("\n"+str);
}

最终呈现

 学习视频:

4.3.2QChar功能测试demo_哔哩哔哩_bilibili

http://www.lryc.cn/news/519189.html

相关文章:

  • android 官网刷机和线刷
  • 二叉树层序遍历 Leetcode102.二叉树的层序遍历
  • DELTA并联机械手视觉方案荣获2024年度机器人应用典型案例奖
  • Netty 入门学习
  • Magentic-One、AutoGen、LangGraph、CrewAI 或 OpenAI Swarm:哪种多 AI 代理框架最好?
  • openstack下如何生成centos9 centos10 和Ubuntu24 镜像
  • Kivy App开发之UX控件Slider滑块
  • CSS——22.静态伪类(伪类是选择不同元素状态)
  • python学opencv|读取图像(三十)使用cv2.getAffineTransform()函数倾斜拉伸图像
  • Unity3D中基于ILRuntime的组件化开发详解
  • ELK的搭建
  • 国产信创实践(国能磐石服务器操作系统CEOS +东方通TongHttpServer)
  • C#里使用libxl读取EXCEL文件里的图片并保存出来
  • 【开源免费】基于SpringBoot+Vue.JS企业级工位管理系统(JAVA毕业设计)
  • 美国大学的计算机科学专业排名
  • 机器学习实战——决策树:从原理到应用的深度解析
  • 开源生成式物理引擎Genesis,可模拟世界万物
  • kubernetes第七天
  • RK3588上CPU和GPU算力以及opencv resize的性能对比测试
  • 基于Centos 7系统的安全加固方案
  • IT行业的发展趋势
  • 《探秘开源多模态神经网络模型:AI 新时代的万能钥匙》
  • ROS核心概念解析:从Node到Master,再到roslaunch的全面指南
  • 2025广州国际汽车内外饰技术展览会:引领汽车内外饰发展新潮流-Automotive Interiors
  • ElasticSearch内存占用率过高怎么办?
  • 基于Qt的OFD阅读器开发原理与实践
  • 用 HTML5 Canvas 和 JavaScript 实现流星雨特效
  • Apifox=Postman+Swagger+Jmeter+Mock
  • SpringBoot多数据源架构实现
  • HarmonyOS开发:传参方式