当前位置: 首页 > 面试题库 >

使用python的窗口的屏幕截图

公冶元青
2023-03-14
问题内容

我正在尝试使用Linux上的python脚本拍摄当前窗口的屏幕截图。

我目前有一个脚本,可以截取整个屏幕的屏幕截图:

import sys
from PyQt4.QtGui import QPixmap, QApplication
from datetime import datetime

date = datetime.now()
filename = date.strftime('%Y-%m-%d_%H-%M-%S.jpg')
app = QApplication(sys.argv)
QPixmap.grabWindow(QApplication.desktop().winId()).save(filename, 'jpg')

但是一个只想拥有选定的窗口。我知道问题出在grabWindow。但我不知道如何解决。


问题答案:

只需更换

QApplication.desktop()

与您要为其截屏的小部件一起使用。

import sys
from PyQt4.QtGui import *
from datetime import datetime

date = datetime.now()
filename = date.strftime('%Y-%m-%d_%H-%M-%S.jpg')
app = QApplication(sys.argv)
widget = QWidget()
# set up the QWidget...
widget.setLayout(QVBoxLayout())

label = QLabel()
widget.layout().addWidget(label)

def shoot():
    p = QPixmap.grabWindow(widget.winId())
    p.save(filename, 'jpg')
    label.setPixmap(p)        # just for fun :)
    print "shot taken"

widget.layout().addWidget(QPushButton('take screenshot', clicked=shoot))

widget.show()
app.exec_()


 类似资料:
  • 可以使用SeleniumWebDriver拍摄屏幕截图。 它会截取网页的整个区域,但浏览器窗口(boarder)不包括在此截图中。 有没有一种方法来采取与Selenium网络驱动程序截图,以便整个浏览器窗口被捕获? 我想看到所有的状态栏,选项卡和按钮。 这是可能的。NET,但它有可能会屏蔽其他内容(例如,浏览器被最小化),所以我想使用selenium。

  • 问题内容: 是否可以使用JavaScript截取网页的屏幕截图,然后将其提交回服务器? 我不太担心浏览器的安全性问题。等,因为实施将针对HTA。但是有可能吗? 问题答案: 我已经通过使用ActiveX控件为HTA完成了此操作。在VB6中构建控件以截取屏幕截图非常容易。我必须使用keybd_event API调用,因为SendKeys无法执行PrintScreen。这是该代码: 这只会使您到达将窗口

  • 我试图根据用户输入的坐标捕捉区域截图。基本上,用户在屏幕上点击得到x,y坐标,然后在其他地方点击另一对x,y坐标,然后将其放入一个矩形中,并使用机器人库创建屏幕截图。 我有的问题是,我得到了随机截图,这不是用户输入的坐标,我怎么能考虑包括0的坐标,因为矩形值必须超过1。 以下是我迄今为止的代码:

  • 问题内容: 经过数小时的搜寻,我设法“写下”了这个: 这是这样做的正确方法,我将如何保存图像? 提前致谢。 问题答案: 经过大量搜索并尝试了各种不同的方法,以下对我有用。

  • 问题内容: 我只需要当前视口的屏幕截图,尤其要注意滚动位置。基本上是当前Chrome驱动程序的功能。 从我所阅读的内容看来,这应该是完全可能的,但是由于某些原因,screenshot命令始终努力获取完整的文档截图。实际上,IE驱动程序会拍摄多个视口镜头,然后将它们缝合在一起。 我使用的是Ruby Webdriver,无论如何我都看不到仅截取视口的屏幕截图。可能吗? 问题答案: 在处理WebDriv

  • 问题内容: 我想使用严格的javascript生成任何给定URL的屏幕快照缩略图。如果无法做到这一点,谁能用我自己的api指向我正确的方向呢? 编辑我只是决定作弊并使用框架,因为无论如何我都是为了娱乐而做的,但是感谢所有的出色答案,如果您想做这样的事情,khtmltox可能是最好的选择……他们也有php绑定还有。 问题答案: 如果您查看wkhtmltox,则有用于将网页转换为图像的本机lib /