c++ - QFileDialog::getOpenFileName 不适用于 MAC 10.10.5 Yosemite

标签 c++ macos qt

我正在使用 QFileDialog::getOpenFileName 打开文件对话框,它会给我所选文件的路径。

奇怪的行为

正在处理中

  • MAC 调试构建
  • 赢得调试构建
  • 赢得发布版本

不工作

  • Mac Release 构建:返回空字符串作为文件名

我的代码是

QString qResult = QFileDialog::getOpenFileName(parent, qCaption, qDefaultPath, qFilter, &qSelectedFilter);

我检查过

  1. parent : 有效指针
  2. pCation:正确显示有效字符串和标题
  3. qDefaultPath :有效路径并存在于机器上,使用 QDir(qDefaultPath).exists()
  4. 检查
  5. q过滤器工作正常
  6. qSelectedFilter:看起来不错

谁能给我个主意?为什么会这样?或任何替代方案? 请帮助这方面的问候

Qt版本是4.8.5

最佳答案

更新您的 Qt 版本是否是一种可能的解决方案? 4.8 分支的最新修订版是 4.8.7。 release note对于那个版本说:

Better support for running Qt 4.8 applications on Mac OS X 10.10 Yosemite

release note对于 4.8.6 来说

Better support for Mac OS X 10.9 Mavericks

所以您的问题很有可能已通过最新修订得到解决。

关于c++ - QFileDialog::getOpenFileName 不适用于 MAC 10.10.5 Yosemite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36010319/

相关文章:

c# - 尝试编译调用 native 代码的类时,Mono 编译器崩溃

python - 如何在左键单击时显示 QMenu

c++ - 如果我在构造函数中指定最小桶大小,我是否保证不会与 `unordered_set` 中的不同哈希值发生冲突?

macos - 在 OS X 上使用 sed 进行就地编辑

c++ - 为什么此代码只能在一个平台上运行而不能在另一个平台上运行?

macos - 以编程方式更改 Mac 上的主显示器

c++ - Qt 在 Ubuntu 22.04 上缺少 OpenSSL 3.x 支持

MySql数据库和qt

c++ - 将 shared_ptr 的嵌套智能指针重置为 shared_ptr(或 unique_ptr),看似矛盾

c++ - 为什么语句不能出现在命名空间范围内?