天天看點

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加密

繼續閱讀