我使用PyKDE (Python语言)库中的KHTMLPart组件在后台下载一些网页,并以像素为单位返回某些元素的大小。我真的不需要这个脚本的任何可视输出,实际上,我可能会在没有安装X的服务器上运行它。问题是,当我告诉我的应用程序只运行控制台时,如下所示:
app = QApplication(sys.argv, False)然后,我的脚本在初始化KHTMLPart的行上出现分段:
browser = KHTMLPart()此外,我需要通过调用以下命令将KHTML浏览器窗口的大小设置为1024x768:
browser.view.resize(1024, 768)这似乎没有任何效果,直到我调用:
browser.show()前面的操作会导致浏览器窗口出现,即使是很短的一段时间。我可以在服务器上运行一个简单的窗口管理器,比如fluxbox,它会做我想做的事情,但如果它能够完全作为一个控制台应用程序运行,我会更高兴-如果这是可能的话。有没有办法做到这一点?
发布于 2010-01-06 23:24:33
如果所有其他方法都失败了,您可以尝试使用X Virtual Framebuffer向应用程序提供一个假的X显示,允许它在不显示的情况下运行。
发布于 2010-01-06 23:25:36
我怀疑。大多数浏览器将下载、创建DOM模型和呈现分离在代码的不同部分。这允许他们以线程的形式下载数据,转换它,然后使用优化的渲染器来显示它。这是一个昂贵的操作,所以他们只在必要时才这么做。
因此,我看不出您需要一个正在运行的X服务器的事实。但该服务器不需要使用显示器。您可以为此运行命令vncserver。它将告诉您将为DISPLAY变量输入的值,以使您的代码访问这个隐藏的屏幕。
https://stackoverflow.com/questions/2013795
复制相似问题