隐藏新的QApplication()的Python Launcher图标

时间:2011-07-19 08:59:13

标签: python macos pyqt

我有一个在后台运行的Threaded程序,每个线程创建一个QApplication(),每次我在Dock上都有一个新的Python Launcher图标。

有没有办法启动QApplication()而不在OSX上创建停靠图标?

谢谢!

2 个答案:

答案 0 :(得分:4)

有多种方法可以删除/禁用停靠栏图标。请参阅此问题:"How to hide the Dock icon"

我使用这个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)

答案 1 :(得分:4)

答案在这里:Start a GUI process in Mac OS X without dock icon

在实例化QApplication之前添加以下行:

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