mainwindow.cpp 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #include "mainwindow.h"
  2. #include "ui_mainwindow.h"
  3. MainWindow::MainWindow(QWidget *parent) :
  4. QMainWindow(parent),
  5. ui(new Ui::MainWindow)
  6. {
  7. ui->setupUi(this);
  8. iconInit();
  9. }
  10. MainWindow::~MainWindow()
  11. {
  12. delete ui;
  13. }
  14. void MainWindow::on_pushButton_choose_clicked()
  15. {
  16. char * strhome = getenv("HOME");
  17. QString strsavepath;
  18. strsavepath = strhome;
  19. strsavepath = strsavepath + "/log";
  20. QDir dir(strsavepath);
  21. if(!dir.exists())
  22. strsavepath = getenv("HOME");
  23. mfile_path = QFileDialog::getOpenFileName(this, tr("Selecte file to uncompress"),strsavepath);
  24. ui->lineEdit->setText(mfile_path);
  25. }
  26. void MainWindow::on_pushButton_start_clicked()
  27. {
  28. fileUncompress(mfile_path);
  29. }
  30. void MainWindow::fileUncompress(QString _filename)
  31. {
  32. QString filename_uncomp = _filename + ".log";//compressed file name
  33. QFile file(_filename);
  34. if(file.exists()){
  35. qDebug() << "brefore compressed file size:" << file.size();
  36. bool ok = file.open(QIODevice::ReadOnly);
  37. if(ok){
  38. QByteArray buffer = file.readAll();
  39. QFile writeFile(filename_uncomp);
  40. ok = writeFile.open(QIODevice::WriteOnly);
  41. if(ok){
  42. //uncompress
  43. ui->progressBar->setValue(10);
  44. qDebug() <<QTime::currentTime();
  45. buffer = qUncompress(buffer);
  46. ui->progressBar->setValue(50);
  47. qDebug() <<QTime::currentTime() << "after uncompressed buffer size:" << buffer.size();
  48. writeFile.write(buffer);
  49. ui->progressBar->setValue(100);
  50. qDebug() << QTime::currentTime()<< "after compressed file size:" << writeFile.size();
  51. }
  52. writeFile.close();
  53. }
  54. }
  55. }
  56. void MainWindow::iconInit()
  57. {
  58. //添加提示信息
  59. ui->pushButton_choose->setToolTip(tr("Choose file to uncompress"));
  60. //设置icon图片
  61. QIcon icon;
  62. icon.addFile(":icon/compress.svg",QSize(),QIcon::Normal, QIcon::On);
  63. setWindowIcon(icon);
  64. }