Mac上的问题:如何获得一个文件对话框,允许手动写入所需的文件路径



在Mac OS-X上,通常显示目录对话框,而不可能使用键盘输入路径。这似乎是我在OS-X上构建Qt应用程序时的默认行为。

如何指定我确实希望手动输入路径?

我建议使用通过QFileDialog的静态方法获得的本机对话框。根据苹果公司的新沙盒要求,您必须使用应用程序的标准对话框才能访问文件系统。实际上很有趣的是,在沙盒应用程序中给用户的实际对话框是一个叫做Powerbox的东西。你可以在NSPanel文档中阅读更多关于它的信息。

正如elmigranto在Mac上的所有文件对话框中指出的那样,你可以点击命令+shift+g输入导航到的路径。

注意:在较新的Qt版本中,文档暗示他们更正了这一点,因此在QFileDialog上使用静态函数可以获得一个同样通过PowerBox的本地对话框。不过我自己还没有尝试过,这个问题上的漏洞仍然存在于Qt 5.5.0和5.6.0中。但是,重写QFileDialog并不能获得本机对话框。如果你需要一个自定义的对话框,走NSSavePanel路线是最好的选择。

如果使用QFileDialog的静态函数,如getExistingDirectory()getOpenFileName(),则会得到本机OS X文件对话框。但是,如果您在不使用静态函数的情况下创建自己的QFileDialog,则应该获得一个Qt文件对话框,您可以通过调用setFileMode()来指定用户必须在对话框中选择的内容。我认为Qt文件对话框将允许用户手动更改对话框中的路径。

当然,如果你只想让用户手动键入一个目录路径,你也可以使用一个简单的QInputDialog

相关内容

  • 没有找到相关文章

最新更新