2024-09-18 10:25:29 +08:00
|
|
|
#include <QFileDialog>
|
|
|
|
#include <QMessageBox>
|
|
|
|
#include <QDebug>
|
|
|
|
#include <QCompleter>
|
|
|
|
#include <QLabel>
|
2024-09-12 17:31:39 +08:00
|
|
|
#include "mainwindow.h"
|
2024-09-14 11:18:18 +08:00
|
|
|
#include "ui_mainwindow.h"
|
2024-09-12 17:31:39 +08:00
|
|
|
|
|
|
|
|
|
|
|
MainWindow::MainWindow(QWidget *parent)
|
2024-09-18 10:25:29 +08:00
|
|
|
: QMainWindow(parent), ui(new Ui::MainWindow), readThread(new ReadThread) {
|
2024-09-12 17:31:39 +08:00
|
|
|
ui->setupUi(this);
|
2024-09-18 10:25:29 +08:00
|
|
|
// 创建版本号标签并添加到状态栏的右端
|
|
|
|
QLabel *m_versionLabel = new QLabel(tr("v1.2.0"), this);
|
|
|
|
ui->statusbar->addPermanentWidget(m_versionLabel);
|
|
|
|
//隐藏进度条
|
|
|
|
ui->progressBar->close();
|
|
|
|
|
|
|
|
/*信号和槽*/
|
|
|
|
//readThread
|
|
|
|
connect(readThread, &ReadThread::clearCombo, this, &MainWindow::clearCombo);
|
|
|
|
connect(readThread, &ReadThread::showStatusbar, this, &MainWindow::showStatusbar);
|
|
|
|
connect(readThread, &ReadThread::setProgressBar, this, &MainWindow::setProgressBar);
|
|
|
|
connect(readThread, &ReadThread::setBeginTime, this, &MainWindow::setBeginTime);
|
|
|
|
connect(readThread, &ReadThread::setEndTime, this, &MainWindow::setEndTime);
|
|
|
|
connect(readThread, &ReadThread::addCombo, this, &MainWindow::addCombo);
|
|
|
|
connect(readThread, &ReadThread::closeProg, this, &MainWindow::closeProg);
|
2024-09-12 17:31:39 +08:00
|
|
|
}
|
|
|
|
|
2024-09-18 10:25:29 +08:00
|
|
|
MainWindow::~MainWindow() {
|
2024-09-12 17:31:39 +08:00
|
|
|
delete ui;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2024-09-18 10:25:29 +08:00
|
|
|
void MainWindow::on_openFileBtn_clicked() {
|
|
|
|
//选择文件,并获取文件名
|
|
|
|
QString fileName = QFileDialog::getOpenFileName();
|
|
|
|
//打开文件
|
|
|
|
file.setFileName(fileName);
|
|
|
|
//打开失败
|
|
|
|
if (!file.open(QIODevice::ReadOnly)) {
|
|
|
|
QMessageBox::warning(this, "错误", "文件打开失败");
|
|
|
|
ui->statusbar->clearMessage();
|
|
|
|
clearCombo();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
//获取文件大小
|
|
|
|
qint64 fileSize = file.size();
|
|
|
|
//设置进度条
|
|
|
|
ui->progressBar->setMaximum((int) fileSize);
|
|
|
|
ui->progressBar->setValue(0);
|
|
|
|
ui->progressBar->show();
|
|
|
|
//执行读取
|
|
|
|
readThread->start();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void MainWindow::on_timeCustomBtn_clicked() {
|
|
|
|
ui->progressBar->close();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void MainWindow::on_dataCustomBtn_clicked() {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
void MainWindow::clearCombo() {
|
|
|
|
ui->comboBox->clear();
|
|
|
|
}
|
|
|
|
|
|
|
|
void MainWindow::showStatusbar(const QString &str) {
|
|
|
|
ui->statusbar->showMessage(str);
|
|
|
|
}
|
|
|
|
|
|
|
|
void MainWindow::setProgressBar(int bytesRead) {
|
|
|
|
ui->progressBar->setValue(bytesRead);
|
|
|
|
}
|
|
|
|
|
|
|
|
void MainWindow::setBeginTime(const QDateTime &beginTime) {
|
|
|
|
ui->beginTimeEdit->setDateTime(beginTime);
|
|
|
|
}
|
|
|
|
|
|
|
|
void MainWindow::setEndTime(const QDateTime &endTime) {
|
|
|
|
ui->endTimeEdit->setDateTime(endTime);
|
|
|
|
}
|
|
|
|
|
|
|
|
void MainWindow::addCombo(const QStringList &names) {
|
|
|
|
//设置下拉框数据
|
|
|
|
ui->comboBox->addItems(names);
|
|
|
|
//根据输入匹配下拉框
|
|
|
|
completer = new QCompleter(names);
|
|
|
|
completer->setFilterMode(Qt::MatchContains);
|
|
|
|
ui->comboBox->setCompleter(completer);
|
|
|
|
}
|
|
|
|
|
|
|
|
void MainWindow::closeProg() {
|
|
|
|
ui->progressBar->close();
|
|
|
|
}
|
|
|
|
|