2010-01-06 63 views
0

我使用PyKDE(Python)庫中的KHTMLPart組件來下載一些背景中的網頁,並以像素爲單位返回某些元素的大小。我真的不需要這個腳本的任何視覺輸出,事實上我可能會在沒有安裝X的服務器上運行它。問題是,當我告訴我的應用程序控制臺只有像這樣運行:是否可以從控制檯完全使用KHTMLPart?

app = QApplication(sys.argv, False) 

然後我的腳本在哪裏我初始化KHTMLPart行出現segfaults:

browser = KHTMLPart() 

此外,我需要設置在KHTML的瀏覽器窗口,以1024×768的尺寸致電:

browser.view.resize(1024, 768) 

這似乎並沒有產生任何影響,直到我打電話:

browser.show() 

以前會導致瀏覽器窗口出現,即使是短暫的。我可以在服務器上運行一個簡單的窗口管理器,例如fluxbox,它可以做我想做的事情,但是如果它能夠完全作爲控制檯應用程序運行 - 如果這甚至是可能的,我會更加高興。有沒有辦法做到這一點?

回答

1

如果一切都失敗了,你可以嘗試使用X Virtual Framebuffer爲你的應用程序提供一個假的X顯示,允許它運行而不顯示任何地方。

1

我對此表示懷疑。大多數瀏覽器將下載,DOM模型的創建和代碼的不同部分中的渲染分開。這允許他們以線程下載數據,將其轉換,然後使用優化的渲染器來顯示它。這是一個昂貴的操作,所以他們只在必要時才做。

因此,我看不出有必要運行X服務器的事實。但該服務器不需要使用顯示器。您可以爲此運行命令vncserver。它會告訴你爲DISPLAY變量輸入的值,以使您的代碼訪問此隱藏屏幕。

相關問題