QT当中的QProgressBar+QFileDialog+QFile

目录

 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设计图片

 

猜你喜欢

转载自blog.csdn.net/m0_45463480/article/details/125255496