我想QWebPage
在非 GUI Qt 应用程序中使用。我的意思是我根本不想与窗口服务器通信。不过,使用 QtGui 不是问题。
QWebPage
在内部创建一些QWidget
实例。因此,QCoreApplication
无法使用。
但是,在创建QApplication
实例时,我已经立即获得了 MacOSX 停靠图标。我不希望那样。这也意味着它以某种方式在 Cocoa 中将自己注册为 GUI 应用程序。
我的问题不仅限于 Mac。我想知道 Qt 是否有“官方”的方式来做到这一点。只有在没有的情况下,我才想知道具体的方法,例如现在在 Mac 上。
关于 Mac 的更具体一点:
还有一个LSBackgroundOnly属性,可以为一个 App 包设置,它指向我想要的方向(因此我仍然不确定它是否真的是纯控制台的,例如在没有 Quartz 的情况下也可以工作,等等。 )。但是,我根本没有 App 包。它只是一个简单的二进制文件(用作 shell 中的命令行工具)。
现在,我有一个小解决方法来隐藏停靠图标,但这很丑陋,因为它首先弹出然后消失:(Python 代码,但这并不重要......)
def hideMacDockIcon():
# http://stackoverflow.com/a/9220857/133374
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)
app = QApplication(sys.argv)
if sys.platform == "darwin":
hideMacDockIcon()
另外,我不确定它是否也适用于其他环境,可能作为系统守护程序左右。