通过Finder/open启动Mac OS X应用程序和直接执行应用程序二进制文件有什么区别?

问题描述:

我在Mac OS X 10.10.5上遇到Qt应用程序问题,因此取消时QFileDialog将无法​​正常关闭。虽然这可能是Qt中的一个错误,但是在正常用户运行应用程序时,我只会看到这个bug。在Finder中打开它(或通过命令行open)。如果我通过Xcode或通过直接调用二进制文件启动应用程序,则没有问题。通过Finder/open启动Mac OS X应用程序和直接执行应用程序二进制文件有什么区别?

  1. 通过直接在命令行或Xcode内调用二进制文件启动应用程序,例如, ./MyApp.app/Contents/MacOS/MyApp

  2. 启动经由Finder或open,例如该应用open ./MyApp.app

什么是这两种方法之间的差异 - 以及它如何影响运行的应用程序?

+0

您能否详细说明在对话框没有正确关闭时究竟发生了什么? –

+0

请发布一个自包含的测试用例,并提及您使用的确切Qt版本。如果我可以复制它,我会请你用这个测试用例提交一个错误报告。 –

+0

我在[github](https://github.com/surething/filedialog)上发布了一些测试代码,并且使用自建的Qt 5.3和安装了自制软件的Qt 5.5 – Dan

主要区别在于工作文件夹。您无法控制它的内容,但这两个调用之间的差异会有所不同。

什么目录中显示你在QFileDialog?你应该从一个明确的地方开始,比如用户的家。

+0

该对话框设置为在磁盘上某些明确定义的位置打开,其中包括用户的家。 – Dan

+0

每次调用文件对话框时(不在示例代码中),都要设置要打开的目录。虽然很高兴看到这发现了Qt中的错误,但我对为什么启动应用程序的两种不同方式导致不同行为感兴趣。 – Dan