QWebPage
GUI以外のQtアプリケーションで使用したい。つまり、ウィンドウサーバーとはまったく通信したくないということです。ただし、QtGuiの使用は問題ではありません。
QWebPage
内部でいくつかのQWidget
インスタンスを作成します。したがって、使用することQCoreApplication
はできません。
ただし、インスタンスを作成すると、QApplication
すぐにMacOSXドックアイコンが表示されます。そして、私はそれを望んでいません。また、なんとかして自分自身をGUIアプリケーションとしてCocoaに登録することも意味します。
私の質問はMacだけではありません。Qtがこれを行うための「公式の」方法があるかどうか知りたいです。ない場合にのみ、これを行うための具体的な方法を知りたいと思います。たとえば、今のところMacで。
Macについてもう少し具体的に:
AppBundleに設定できるLSBackgroundOnlyプロパティもあります。これは、私が望む方向に進みます(これにより、本当にコンソールのみであるかどうかはまだわかりません。たとえば、Quartzがなくても機能します。 )。ただし、AppBundleはまったくありません。これは単なるバイナリです(シェルでコマンドラインツールとして使用されます)。
今のところ、ドックアイコンを非表示にするための小さな回避策がありますが、最初にポップアップしてから消えるので、かなり醜いです:( 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()
また、システムデーモンなど、他の環境でも機能するかどうかはわかりません。