QT -- 選擇文件保存路徑


選擇文件保存路徑有兩種邏輯:
1.先選擇文件保存路徑后拍照;
2.先拍照后選擇路徑保存該bufframe

邏輯1的實現方法:
ui界面

點擊獲取保存路徑PushButton,

void suCam::on_pushButton_fileChoose_clicked()
{
    QString srcDirPath = QFileDialog::getExistingDirectory(
                this, "choose src Directory",
                "/");
    if (srcDirPath.isEmpty())
    {
        return;
    }
    else
    {
        qDebug() << "srcDirPath=" << srcDirPath;
        srcDirPath += "/";
    }
}

獲取保存地址后,自動保存代碼如下:

//Auto Save
void HamamatsuCam::SaveSequenceImg(QImage image, int nframe)
{
    std::string m_path = srcDirPath.toStdString();
    std::string path = m_path +std::to_string(nframe) + ".bmp";
    QString SavePath = QString::fromStdString(m_path);
    QString SequenceSavePath = QString::fromStdString(path);
    image.save(SequenceSavePath,"tif",100);  //類型
}

邏輯2的實現方法:
在已經獲取一張圖片的bufframe的前提下,選擇保存:

//BTN-Save Snap image
void suCam::on_pushButton_save_clicked()
{
    //獲取保存路徑
    if(snap_img.isNull())return;
    _TempPath  = QCoreApplication::applicationDirPath();//.exe項目文件所在目錄
    dtCurtime = QDateTime::currentDateTime();  //設置當前時間為保存時間
    _TempPath = _TempPath + "//Image//" + dtCurtime.toString("yyyyMMddhhmmss");  //保存名稱為path + image(?) + 日期年y月M日d時h分m秒s
    strFileName = QFileDialog::getSaveFileName(this,tr("Save Picture"),  //類函數QFileDiaLog:獲取文件路徑//getSaveFileName:獲取保存文件名字
                                               _TempPath,
                                               "PNG(*.png);;JPG(*.jpg);;BMP(*.bmp);;TIF(*.tif)");
    if(!strFileName.isNull())
    {
        int nIndex = strFileName.lastIndexOf('.');//尋找‘.’符號在字符串中的id
        nIndex++;
        int nLen = strFileName.length()-nIndex;
        strSuffix = strFileName.right(nLen);//截取‘.’符號后面的字符串,這是為了獲取用戶選擇的文件后綴名
        snap_img.save(strFileName,strSuffix.toUpper().toUtf8(),100);//保存圖片
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM