我想用QWebPage
在非 GUI Qt 应用程序中。我的意思是我根本不想与窗口服务器通信。不过,使用 QtGui 不是问题。
QWebPage
内部创建一些QWidget
实例。因此,使用QCoreApplication
不可能。
当创建一个QApplication
不过,我已经立即获得了 MacOSX 停靠栏图标。我不想要这样。这也意味着它以某种方式在 Cocoa 中将自己注册为 GUI 应用程序。
我的问题不仅仅限于 Mac。我想知道 Qt 是否有“官方”方式来做到这一点。仅当没有时,我才想知道具体的方法,例如目前在 Mac 上。
关于 Mac 的更具体一些:
还有LS仅背景 http://www.cocoadev.com/index.pl?LSBackgroundOnly属性,可以为应用程序包设置,并且进入我想要的方向(因此我仍然不确定它是否真的是真正的仅限控制台,例如,在没有 Quartz 的情况下也可以工作,等等)。但是,我根本没有应用程序包;它只是一个简单的二进制文件(用作 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()
另外,我不确定它是否也适用于其他环境,也许作为系统守护进程等。
您可以使用 QPA 来做到这一点。这恰好是 PhantomJS 实现无头的方式。修改 QT 预配置文件以指定 QPA:
QT_CFG +=' -qpa' # X11-less with QPA (aka Lighthouse)
还有一些关于 QMinimalWindowSurface 的内容。
https://github.com/ariya/phantomjs/commit/6c8a1c2dc1 https://github.com/ariya/phantomjs/commit/6c8a1c2dc1
https://github.com/ariya/phantomjs/commit/c78ae190a9 https://github.com/ariya/phantomjs/commit/c78ae190a9
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)