Files
ReadLog/mainwindow.cpp

100 lines
2.7 KiB
C++
Raw Normal View History

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();
}