在Qt中如何在用户主页中打开QFileDialog :: getOpenFileNames

时间:2012-06-13 06:22:17

标签: c++ qt qt4

我正在使用Qt QFileDialog :: getSaveFileName和QFileDialog :: getOpenFileNames让用户选择保存文件的位置以及要在我的应用中打开的文件。

此函数的第三个参数是您希望窗口默认打开的路径。在linux中,如何在用户主页中打开对话框,在Windows中如何在win 7中的用户用户文件夹或win xp中的“我的文档”中打开对话框?

目前我正在使用如下对话框:QFileDialog::getOpenFileNames(this, "Select a file to open...", HOME);其中HOME是一个预处理器宏,在UNIX中是〜并且在Windows中是C:\

Unix版本不起作用,并在二进制文件所在的同一文件夹中打开对话框。

2 个答案:

答案 0 :(得分:10)

使用QDir::homePath

QFileDialog::getOpenFileNames(this, "Select a file to open...", QDir::homePath())

答案 1 :(得分:2)

此外,如果您想对现有文件应用过滤器,可以尝试:

QString filter = "File Description (*.extention)";
// For example: "Mpeg Layer 3 music files (*.mp3)"
QFileDialog::getOpenFileName(this, "Select a file...", QDir::homePath(), filter);

然后,一旦用户选择了一个文件,QFileDialog::getOpenFileName函数就会返回该文件的绝对地址。