Qt保存屏幕截图 - 命名问题

Qt Save screenshot - naming problems

本文关键字:问题 保存 屏幕截图 Qt      更新时间:2023-10-16

我想将我的应用程序的屏幕截图保存到桌面。问题是,它会保存,但如果我拍摄另一张屏幕截图,它会替换旧图像。我如何告诉Qt称它为愿望清单1,愿望清单2等?

QString filepath = QDir::toNativeSeparators( QDir::homePath() + "/Desktop/Wishlist.png"  );
    if( grab().save( filepath, "png" ) )
        statusBar()->showMessage( tr("Saved file to Desktop.") );
    else
        statusBar()->showMessage( tr("Error saving file.") );

在我关闭并再次启动程序后,它应该可以继续。 例如,愿望清单 1,愿望清单 2 然后重新启动,然后它应该将下一个屏幕截图命名为愿望清单 3

创建一个用于解析文件名的函数。 以下代码片段不安全(如果没有 get 太大怎么办),对于 no == 0,您需要一个特殊情况。

int no = 0;
while( true ){
    QString path = filename + "." + QString::number( no ) + "." + extention;
    QFileInfo fileInfo( path );
    if( !fileInfo.exists() )
        return path;
    no++
}