2010-01-06 36 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变量输入的值,以使您的代码访问此隐藏屏幕。

相关问题