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

nba*_*lle 4 python macos pyqt

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

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

谢谢!

Gia*_*lli 7

答案就在这里:在没有停靠图标的 Mac OS X 中启动 GUI 进程

在实例化 QApplication 之前放置以下行:

import AppKit
info = AppKit.NSBundle.mainBundle().infoDictionary()
info["LSBackgroundOnly"] = "1"
Run Code Online (Sandbox Code Playgroud)


Alb*_*ert 6

有多种方法可以删除/禁用停靠栏图标。看到这个问题:“如何隐藏 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)
Run Code Online (Sandbox Code Playgroud)