Alb*_*ert 4 qt qt4 qwebpage qwebkit
我想QWebPage
在非GUI Qt应用程序中使用.通过这个,我的意思是我根本不想与窗口服务器通信.但是,使用QtGui不是问题.
QWebPage
在内部创建一些QWidget
实例.因此,使用QCoreApplication
是不可能的.
在创建QApplication
实例时,我已经立即获得了一个MacOSX停靠图标.我不希望这样.它还意味着它以某种方式在Cocoa中将自身注册为GUI应用程序.
我的问题不是Mac版.我想知道Qt是否有"官方"方式来做到这一点.只有在没有的情况下,我才想知道具体的方法,例如在Mac上.
关于Mac的更具体一些:
还有一个LSBackgroundOnly属性,可以为App包设置,它可以指向我想要的方向(我仍然不确定它是否真的是真正的控制台,例如,如果没有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()
Run Code Online (Sandbox Code Playgroud)
此外,我不确定它是否也适用于其他环境,可能是系统守护程序等.
你可以用QPA做到这一点.这恰好是PhantomJS如何实现无头.修改了QT preconfig文件以指定QPA:
QT_CFG +=' -qpa' # X11-less with QPA (aka Lighthouse)
还有一些关于QMinimalWindowSurface的内容.
https://github.com/ariya/phantomjs/commit/6c8a1c2dc1 https://github.com/ariya/phantomjs/commit/c78ae190a9