个人学习笔记
代码仓库
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-9
ui->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