1

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

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

4

2 回答 2

4

我建议使用 QFileDialog 的静态方法获得的本机对话框。根据 Apple 的新沙盒要求,您必须使用应用程序的标准对话框来访问文件系统。实际上,有趣的是,在沙盒应用程序中为用户提供的实际对话框是一种称为 Powerbox 的东西。您可以在 NSPanel 文档中阅读有关它的更多信息。

同样正如 elmigranto 在 Mac 上的所有文件对话框中指出的那样,您可以按 command + shift + g 输入要导航到的路径。

注意:在较新的 Qt 版本中,文档暗示他们更正了这一点,以便使用 QFileDialog 上的静态函数为您提供一个也通过 PowerBox 的本机对话框。虽然我自己没有尝试过,但这个问题上的错误仍然对 Qt 5.5.0 和 5.6.0 开放。但是,覆盖 QFileDialog 并不会为您提供本机对话框。如果您需要自定义对话框,则可以使用 NSSavePanel 路线。

于 2014-02-24T06:21:37.957 回答
2

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

当然,如果您只想让用户手动输入目录路径,您也可以使用简单的QInputDialog.

于 2013-02-16T17:19:04.680 回答