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