目录
main.c
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QTextCodec>//解决字符编码乱码问题
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
public slots:
private slots:
void on_PBT_clicked();
void on_PBJ_clicked();
void on_PBL_clicked();
private:
Ui::MainWindow *ui;
QTextCodec *codec;
QString filename;
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QString>
#include<QProgressBar>//进度条头文件
#include<QDebug>//控制台输出
#include<QFileDialog>
#include <QFile>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->progressBar->setValue(0);
codec = QTextCodec::codecForName("gbk");//设置字符编码
codec->setCodecForLocale(codec);
ui->stackedWidget->setCurrentIndex(0);//显示当前索引
}
MainWindow::~MainWindow()
{
delete ui;
}
//浏览按钮
void MainWindow::on_PBL_clicked()
{
filename = QFileDialog::getOpenFileName();//文件对话框
ui->lineEdit->setText(filename);
}
//加密按钮
void MainWindow::on_PBJ_clicked()
{
//读写文件打开
QFile f(filename);
if(!f.open(QIODevice::ReadWrite))
return;
//读取全部内容
QByteArray buf = f.readAll();
ui->textEdit->append(codec->toUnicode(buf));//加密前
ui->progressBar->setRange(0,buf.length()-1);
for(int i=0; i<buf.length();i++)
{
buf[i]=~buf[i];
ui->progressBar->setValue(i);//进度条
}
ui->textEdit_2->append(codec->toUnicode(buf));//加密后
//回写
f.seek(0);
f.write(buf);
//关闭
f.close();
}
//退出按钮
void MainWindow::on_PBT_clicked()
{
close();
}
ui设计图片