Qt保存截图 - 命名问题

时间:2013-11-11 15:32:41

标签: c++ qt

我想将应用程序的屏幕截图保存到桌面。问题是,它可以节省,但如果我采取另一个截图,它将取代旧图像。我如何告诉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 然后重启,然后它应该命名下一个截图 Wishlist 3

1 个答案:

答案 0 :(得分:2)

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

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