-1

アプリケーションのスクリーンショットをデスクトップに保存したいと考えています。問題は、保存されますが、別のスクリーンショットを撮ると、古い画像が置き換えられることです。ウィッシュリスト1、ウィッシュリスト2などと呼ぶようにQtに指示するにはどうすればよいですか?

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.") );

プログラムを閉じて再起動すると、続行できるはずです。たとえば、 Wishlist 1Wishlist 2を再起動すると、次のスクリーンショットにWishlist 3という名前が付けられます。

4

1 に答える 1

2

ファイル名を解決する関数を作成します。次のスニペットは安全ではなく (no get が大きすぎる場合)、no == 0 の場合は特別なケースが必要です。

int no = 0;
while( true ){
    QString path = filename + "." + QString::number( no ) + "." + extention;
    QFileInfo fileInfo( path );
    if( !fileInfo.exists() )
        return path;
    no++
}
于 2013-11-11T15:50:31.540 に答える