Mac中的文件对话框以查找应用程序

时间:2014-11-30 14:27:12

标签: python macos tkinter

我有一些Python代码在Windows和Ubuntu Linux中运行良好,但在Mac上有问题。

我正在做的是向用户(在我的应用程序中)提供选择他想要打开的应用程序的能力,只要他按下我的应用程序上的按钮(这样他就可以调用而无需每次都搜索它)

设置代码如下(简化):

self.app_opt = options = {}
options['title'] = 'Please choose an app from your computer'
options['initialdir'] = '~/'
chosen_app = "~/"
chosen_app = askopenfilename(parent = self.parent, **self.app_opt)
self.chosen_app = chosen_app

稍后,按下按钮,按钮中的代码如下所示:

subprocess.Popen(self.chosen_app)

正如我所说,它在Windows中工作正常(我转到" Program Files",选择一个可执行文件,一切都很好),当我按下按钮时它会运行。同样在Ubuntu中 - (我从/ usr / bin中选择),当我按下按钮时app运行正常。

尝试在Mac中执行此操作 - 仅作为示例,我们希望在按下按钮时打开iTunes - 现在可以找到运行iTunes的真实应用程序。

  

/Applications/iTunes.app/Contents/MacOS/iTunes

但我无法选择

  

/Applications/iTunes.app

我需要在文件对话框中添加一些选项/设置才能使其正常工作吗?

1 个答案:

答案 0 :(得分:0)

在问了一个朋友之后(感谢DJ!)我觉得这是错误的方式

在Mac中我不应该打电话

subprocess.Popen(self.chosen_app)

但更像是

subprocess.Popen('open -a \"' + self.chosen_app + '\"')

解释here

将报告其工作原理