#include "wavesd.h"
#include "ui_wavesd.h"
#include <QMessageBox>
#include <QStringList>
#include <QFileDialog>
#include <QDebug>
#include <QDir>
#include <QFileInfo>
#include <QStringList>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlRecord>
_WaveData_ wavedata;
WaveSD::WaveSD(QWidget *parent) :
QWidget(parent),
ui(new Ui::WaveSD)
{
ui->setupUi(this);
}
WaveSD::~WaveSD()
{
delete ui;
}
void WaveSD::on_pushButton_clicked()
{
QString fileName=QFileDialog::getOpenFileName(this,QStringLiteral("请选择一个文件"),\
QDir::currentPath(),QStringLiteral(".h文件(*.h);;所有文件(*.*)"));
if(fileName.isEmpty())
return;
QFile aFile(fileName);
if(!aFile.open(QIODevice::ReadOnly|QIODevice::Text))
return;
ui->plainTextEdit->appendPlainText(QStringLiteral("文件大小:")+QString::number(aFile.size())+"\n");
ui->plainTextEdit->appendPlainText(QStringLiteral("文件访问权限:")+QString::number(aFile.permissions(),16)+"\n");
// QFile file("image.jpg");
// QFileInfo info(file);//获取文件的信息
QFileInfo info(aFile);//获取文件的信息
qDebug() << QStringLiteral("路径") << info.absoluteFilePath()
<< QStringLiteral("大小") << info.size();
aFile.close();
}
void WaveSD::on_pushButton_2_clicked()
{
// QFile file("image.jpg");
// QFileInfo info(file);//获取文件的信息
// qDebug() << QStringLiteral("路径") << info.absoluteFilePath()
// << QStringLiteral("大小") << info.size();
// file.close();
QString oldFileName=QFileDialog::getOpenFileName(this,QStringLiteral("请选择一个文件"),\
QDir::currentPath(),QStringLiteral(".h文件(*.h);;所有文件(*.*)"));
if(oldFileName.isEmpty())
return;
QFileInfo fileInfo(oldFileName);
QString newFileName=fileInfo.path()+"/"+fileInfo.baseName()+".XYZ"; //设置新文件名称
QFile::rename(oldFileName,newFileName); //改名
ui->plainTextEdit->appendPlainText(QStringLiteral("源文件名为:")+oldFileName+"\n");
ui->plainTextEdit->appendPlainText(QStringLiteral("重命名为:")+newFileName);
}
void WaveSD::on_pushButton_3_clicked()
{
//过滤器的使用
// QDir mDir(QDir::current());
// QStringList filters;
// filters<<"*.cpp"<<"*.h"<<"*.txt"<<".pro"; //设置指定的文件类型
// mDir.setNameFilters(filters); //设置过滤器
// qDebug()<<mDir.entryList(filters, QDir::Files); //打印帅选出的条目
// QDir dir("E:\QT");
QDir dir(QDir::current());
foreach (QFileInfo mItem,dir.entryInfoList())//遍历路径下的每一项
{
if(mItem.isDir())//如果是文件夹
{
qDebug() << " Dir " << mItem.filePath(); //打印路径
}
else//如果不是文件夹
{
qDebug() << "File" << mItem.filePath();
}
}
ui->plainTextEdit->appendPlainText(QStringLiteral("临时文件目录名称:")+QDir::tempPath()+"\n");
ui->plainTextEdit->appendPlainText(QStringLiteral("根目录名称:")+QDir::rootPath()+"\n");
ui->plainTextEdit->appendPlainText(QStringLiteral("主目录名称:")+QDir::homePath()+"\n");
ui->plainTextEdit->appendPlainText(QStringLiteral("当前目录名称:")+QDir::currentPath()+"\n");
}
void WaveSD::on_pushButton_4_clicked()
{
QString fileName=QFileDialog::getOpenFileName(this,QStringLiteral("请选择一个文件"),QDir::currentPath());
if(fileName.isEmpty())
return;
ui->lineEdit->setText(fileName);
}
void WaveSD::on_pushButton_5_clicked()
{
QString dirName=QFileDialog::getExistingDirectory(this,QStringLiteral("选择一个目录"),QDir::currentPath());
if(dirName.isEmpty())
return;
ui->lineEdit_2->setText(dirName);
}
void WaveSD::on_pushButton_6_clicked()
{
//添加监听对象
fileWathcer.addPath(ui->lineEdit->text());
fileWathcer.addPath(ui->lineEdit_2->text());
//绑定信号与槽
QObject::connect(&fileWathcer,SIGNAL(directoryChanged(const QString path)),this,SLOT(on_directoryChanged(const QString path)));
QObject::connect(&fileWathcer,SIGNAL(fileChanged(const QString path)),this,SLOT(on_fileChanged(const QString path)));
}
void WaveSD::on_pushButton_7_clicked()
{
//解除监听对象
fileWathcer.removePath(ui->lineEdit->text());
fileWathcer.removePath(ui->lineEdit_2->text());
//解除信号与槽
QObject::connect(&fileWathcer,&QFileSystemWatcher::directoryChanged,this,&WaveSD::on_directoryChanged);
QObject::connect(&fileWathcer,&QFileSystemWatcher::fileChanged,this,&WaveSD::on_fileChanged);
}
void WaveSD::on_fileChanged(const QString path)
{
ui->plainTextEdit->appendPlainText(path);
ui->plainTextEdit->appendPlainText(QStringLiteral("文件发生了变化"));
}
void WaveSD::on_directoryChanged(const QString path)
{
ui->plainTextEdit->appendPlainText(path);
ui->plainTextEdit->appendPlainText(QStringLiteral("目录发生了变化"));
}
void WaveSD::on_pushButton_8_clicked()
{
QString fileName=QFileDialog::getOpenFileName(this,QStringLiteral("请选择一个文件"),\
QDir::currentPath(),QStringLiteral(".h文件(*.h);;所有文件(*.*)"));
if(fileName.isEmpty())
return;
QFile file(fileName);
// if(!file.open(QIODevice::ReadOnly|QIODevice::Text))
// return;
// QFile file("test.txt"); //打开文件test.txt
QVector<float>array; //vector矢量,建立一个数组array
if(file.open(QIODevice::ReadOnly|QIODevice::Text)) // 以只读方式打开文件
{
QTextStream ts(&file); //利用QTextStream流读取file,ts通过指针访问file
while(!file.atEnd()) //文件未读完时
{
float buf; //定义float类型数据buf
QStringList list=ts.readAll().split(QRegExp("\\s+")); //利用QStringList读取所有内容,split分割内容,有多种分割样式
QListIterator<QString>li(list); //起到定位列表内字符初始位置的作用
while(li.hasNext()) //hasNext当读取未进行到末尾时,返回true,故可以在未到末尾时一直读取
{
buf=li.next().toFloat(); //next的作用是读取下一个值并向下跳转位置
array.append(buf); //append追加,等同于list.insert(size(), value)的作用,添加内容
}
}
}
ui->lineEdit->setText(QString::number(array[0])); //将数组array中的第1个数据显示到第一个lineedit上
ui->lineEdit_2->setText(QString::number(array[2]));
}
void WaveSD::on_pushButton_9_clicked()
{
//指定该连接使用的数据库驱动,没有设置第二个参数即为默认连接
QSqlDatabase db=QSqlDatabase::addDatabase("QSQL