天天看点

Qt多功能计算器(四)——base64加密和解密项目介绍界面设计界面逻辑知识整理

项目介绍

Qt多功能计算器(四)——base64加密和解密项目介绍界面设计界面逻辑知识整理

本篇文章的内容是Qt多功能计算器的第四个功能,base64的加密和解密,这可能是除对话框外,这个项目中最简单、代码量最少的界面(因为项目还没有写完,所以我不能确定这一定是最简单的界面)。

界面设计

这是界面的设计图:

Qt多功能计算器(四)——base64加密和解密项目介绍界面设计界面逻辑知识整理
控件描述 控件名称
输入框 inputBox
输出框 outputBox
加密按钮 btnEncode
解密按钮 btnDecode
控件名称 信号函数 槽函数 槽函数参数
btnEncode QPushButton::clicked() Base64::btnEncodePushed() None
btnDecode QPushButton::clicked() base64::btnDecodePushed() None
void btnEncodePushed();
void btnDecodePushed();
           
connect(ui->btnEncode,&QPushButton::clicked,this,[=]{Base64::btnEncodePushed();});
connect(ui->btnDecode,&QPushButton::clicked,this,[=]{Base64::btnDecodePushed();});
           

界面逻辑

btnDecodePushed()函数

void Base64::btnDecodePushed()
{
	QByteArray inputText = ui->inputBox->toPlainText().toLocal8Bit();
	inputText = QByteArray::fromBase64(inputText);
	QString outputText = QString::fromLocal8Bit(inputText);
	ui->outputBox->setText(outputText);
}
           

处理解码按钮被按下的事件,对字符串进行解码

btnEncodePushed()函数

void Base64::btnEncodePushed()
{
	QString inputText = ui->inputBox->toPlainText();
	QString outputText = inputText.toUtf8().toBase64();
	ui->outputBox->setText(outputText);
}
           

处理编码按钮被按下的事件,对字符串进行编码

知识整理

QByteArray

QByteArray与QString

  • QString是字符串类型,可以处理各国语言的编码,默认都当作utf-8编码来处理
  • QByteArray是字节流类型,对于语言,只能处理ACSII(美国信息交换标准代码)编码,也就是只能处理英语字符,如果QByteArray中有其它语言的编码,那么就会以原始字节流的形式输出
  • 相比QString,QByteArray具有更强的灵活性,在适当的地方使用可以缩短代码

QByteArray::fromBase64()函数

对QByteArray字节流进行base64解密

QString::toLocal8Bit()函数

将QString转换为字节流,返回的数据类型是QByteArray。

QString::fromLocal8Bit()函数

将字节流转换为字符串,与QString::toLocal8Bit()函数相反。

QString的base64加密

继续阅读