QFileDialog默认为AppData?

mrg*_*g95 0 c++ directory qt appdata qfiledialog

在我的程序中,我有一个按钮,打开一个getOpenFileName对话框,如下所示:

path = QFileDialog::getOpenFileName(this, tr("Select region"), "%APPDATA%", tr("region file"));
Run Code Online (Sandbox Code Playgroud)

我希望对话框默认为用户AppData文件夹.所有用户都在运行Windows(XP或更高版本).我如何确保默认为AppData?

谢谢.:)

Max*_*hun 5

您可以使用QDesktopServices静态方法(Qt4):

QString path = QDesktopServices::storageLocation(QDesktopServices::DataLocation);
Run Code Online (Sandbox Code Playgroud)

在Qt5中:

QString path = QStandardPaths::standardLocations(QStandardPaths::DataLocation).at(0);
Run Code Online (Sandbox Code Playgroud)

要获取漫游文件夹:

QSettings settings(QSettings::IniFormat, QSettings::UserScope, "AppName", "application");
QString location = QFileInfo(settings.fileName()).absolutePath() + "/";
Run Code Online (Sandbox Code Playgroud)

在我的情况下,路径是:

C:/Users/maxim.makhun/AppData/Roaming/AppName/