0

PyKDE (Python) ライブラリの KHTMLPart コンポーネントを使用して、バックグラウンドでいくつかの Web ページをダウンロードし、特定の要素のサイズをピクセル単位で返します。このスクリプトからの視覚的な出力は実際には必要ありません。おそらく、X がインストールされていないサーバーで実行します。問題は、アプリケーションに次のようにコンソールのみで実行するように指示したときです。

app = QApplication(sys.argv, False)

私のスクリプトは、KHTMLPart を初期化する行でセグメンテーション違反を起こします。

browser = KHTMLPart()

さらに、次のコマンドを呼び出して、KHTML ブラウザー ウィンドウのサイズを 1024x768 に設定する必要があります。

browser.view.resize(1024, 768)

私が呼び出すまで、これは何の効果もないようです:

browser.show()

前の例では、たとえそれが短時間であっても、ブラウザ ウィンドウが表示されます。サーバー上でfluxboxなどの単純なウィンドウマネージャーを実行することもできますし、それは私が望むことを実行しますが、それがコンソールアプリケーションとして完全に機能することができれば、私はもっと幸せです. これを達成する方法はありますか?

4

2 に答える 2

1

他のすべてが失敗した場合は、X Virtual Framebufferを使用して偽の X ディスプレイをアプリケーションに提供し、どこにも表示せずに実行できるようにすることができます。

于 2010-01-06T15:24:33.017 に答える
1

疑わしい。ほとんどのブラウザーは、ダウンロード、DOM モデルの作成、およびコードのさまざまな部分でのレンダリングを分離しています。これにより、スレッドでデータをダウンロードして変換し、最適化されたレンダラーを使用して表示できます。これはコストのかかる操作であるため、必要な場合にのみ実行されます。

したがって、実行中の X サーバーが必要であるという事実を回避する方法はありません。しかし、そのサーバーはディスプレイを使用する必要はありません。このコマンドvncserverを実行できます。DISPLAYコードがこの非表示の画面にアクセスできるようにするために、変数にシードする値がわかります。

于 2010-01-06T15:25:35.693 に答える