2

在我的应用程序中,我需要加载许多图像。我真的会使用一个选项来选择最后打开的文件,所以我想知道最后选择的文件。文档说:

QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"),
                                            "/home",
                                            tr("Images (*.png *.xpm *.jpg)"));

文件对话框的工作目录将设置为 dir。如果 dir 包含文件名,则将选择该文件。

所以我应该将最后打开的文件路径保存在某处,然后插入它而不是“/home”。但这不起作用。在打开文件对话框中,文件名被剥离到最后几个字符,并且没有选择文件。怎么了?它是一个错误吗?

我当前的代码:

QString fileName = QFileDialog::getOpenFileName(this, "Select file", 
    lastUsedFile, "Image Files (*.png *.jpg *.jpg *.bmp);; JPEG(*.jpg *.jpeg);; PNG(*.png);; BMP(*.bmp)");

if (!fileName.isEmpty())
    lastUsedFile = fileName;

我想要实现的是要选择并滚动到文件。

4

1 回答 1

2

它是 QFileDialog::getOpenFileName() 的第三个参数。然后你必须将它存储在 QSettings 中。

例如:

QString fileName = QFileDialog::getOpenFileName(
        this, tr("Open file"), 
        Settings.value(DEFAULT_DIR).toString(),
        tr("Images (*.png *.xpm *.jpg)");

if (!fileName.isEmpty()) {
   QDir curDir;
   Settings.setValue(DEFAULT_DIR, curDir.absoluteFilePath(fileName));
}
于 2017-03-20T09:03:07.717 回答