隐藏新QApplication()的Python启动器图标

6 投票
2 回答
2187 浏览
提问于 2025-04-16 21:49

我有一个多线程的程序,它在后台运行,每个线程都会创建一个QApplication(),结果我在我的Dock上每次都会出现一个新的Python启动图标。

有没有办法在OSX上启动一个QApplication()而不在Dock上创建图标呢?

谢谢!

2 个回答

7

答案在这里:在Mac OS X中启动一个没有Dock图标的GUI进程

在创建QApplication之前,把以下几行代码放在前面:

import AppKit
info = AppKit.NSBundle.mainBundle().infoDictionary()
info["LSBackgroundOnly"] = "1"
7

有一些方法可以去掉或者禁用Dock图标。你可以看看这个问题:“如何隐藏Dock图标”

我使用了这段Python代码(在我创建了QApplication实例之后):

def hideMacDockIcon():
    import AppKit
    # https://developer.apple.com/library/mac/#documentation/AppKit/Reference/NSRunningApplication_Class/Reference/Reference.html
    NSApplicationActivationPolicyRegular = 0
    NSApplicationActivationPolicyAccessory = 1
    NSApplicationActivationPolicyProhibited = 2
    AppKit.NSApp.setActivationPolicy_(NSApplicationActivationPolicyProhibited)

撰写回答