我正在使用PyKDE(在Python中)库中的KHTMLPart组件在后台下载一些网页并返回某些元素的大小(以像素为单位)。我真的不需要这个脚本的任何视觉输出,实际上我可能会在没有安装X的服务器上运行它。问题是,当我告诉我的应用程序只运行控制台时:
app = QApplication(sys.argv, False)
我的脚本然后在我初始化KHTMLPart的行上进行了段错误:
browser = KHTMLPart()
此外,我需要通过调用以下方式将KHTML浏览器窗口的大小设置为1024x768:
browser.view.resize(1024, 768)
在我打电话之前,这似乎没有任何效果:
browser.show()
以前会导致浏览器窗口出现,即使这是短暂的。我可以在服务器上运行一个简单的窗口管理器,例如fluxbox,它会做我想要的,但如果能够完全作为控制台应用程序运行,我会更高兴 - 如果可能的话。有没有办法实现这个目标?
答案 0 :(得分:1)
如果所有其他方法都失败了,您可以尝试使用X Virtual Framebuffer为您的应用程序提供虚假的X显示,让它在不显示任何地方的情况下运行。
答案 1 :(得分:1)
我对此表示怀疑。大多数浏览器将下载,DOM模型的创建和代码的不同部分中的呈现分开。这允许他们在线程中下载数据,转换它然后使用优化的渲染器来显示它。这是一项昂贵的操作,所以他们只在必要时才这样做。
因此,我认为您无需使用正在运行的X服务器。但该服务器不需要使用显示器。您可以为此运行命令vncserver
。它将告诉您DISPLAY
变量的值,以使您的代码访问此隐藏屏幕。