在Qt中保存文件经常利用的是出现对话框然后让用户自己选择保存位置的形式,这种保存的方式有很多优点,但是在工业应用中经常需要一键保存到固定的位置而省去选择路径的时间,据我了解,这种保存方式目前在网上教程中并不好找,所以我特意写下来,以飨读者。
下面直接上代码:
QDir *photo = new QDir;//QDir有一个exists函数,来判断计算机是否存在该路径
bool exist = photo->exists("D://PDFDATA");
if(exist)
{
QString fname=QDateTime::currentDateTime().toString("yyyy.MM.dd hh.mm.ss");
QPrinter printer(QPrinter::ScreenResolution);
printer.setPaperSize(QPrinter::A4);
printer.setOutputFormat(QPrinter::PdfFormat);
// printer.setOutputFileName(QString(fname)+".pdf");
printer.setOutputFileName("D://PDFDATA//"+QString(fname)+" 表格.pdf"); //设置输出路径
ui->textEdit->document()->print(&printer);
QMessageBox::about(this, tr("提示"), tr("保存成功"));
} else
{
//创建photo文件夹
photo->mkdir("D://PDFDATA");
QString fname=QDateTime::currentDateTime().toString("yyyy.MM.dd hh.mm.ss");
QPrinter printer(QPrinter::ScreenResolution);
printer.setPaperSize(QPrinter::A4);
printer.setOutputFormat(QPrinter::PdfFormat);
// printer.setOutputFileName(QString(fname)+".pdf");
printer.setOutputFileName("D://PDFDATA//"+QString(fname)+" 表格.pdf"); //设置输出路径
ui->textEdit->document()->print(&printer);
if( ui->actiontable->iconText()=="表格")
QMessageBox::about(this, tr("提示"), tr("保存成功"));
}
先说明代码的作用是将一份PDF的表格保存到固定路径D://PDFDATA//下,利用的是Qt自带的类QDir,QDir有一个判断函数exists,如果路径在计算机中存在,则为真,否则为假。
所以当计算机中存在此路径时,利用printer.setOutputFileName,直接命名保存,如果计算机没有此路径,则新建此路径,然后再保存,十分方便。
以上。