首页 > 解决方案 > MacOSX PyQt 抓取屏幕外的区域

问题描述

pyqt 是否可以抓取屏幕外的区域?

这是我的代码,它所做的就是抓住自己并显示它

# -*- coding: utf-8 -*-
import sys
import os

from PySide2.QtGui import *
from PySide2.QtWidgets import *
from PySide2.QtCore import *

class test_widget(QWidget):

    def __init__(self, parent=None):
        super(test_widget, self).__init__(parent)
        self.__ui__()

    def __ui__(self):
        t_lay_parent = QVBoxLayout()
        self.pushButton_open = QPushButton("Screen")
        self.label_image = QLabel()
        t_lay_parent.addWidget(self.pushButton_open)
        t_lay_parent.addWidget(self.label_image)
        self.pushButton_open.clicked.connect(self.slt_open)
        self.setLayout(t_lay_parent)

    def slt_open(self):
        self.full_screen = QGuiApplication.primaryScreen().grabWindow(long(0), self.x(), self.y(), self.width(), self.height())
        self.label_image.setPixmap(self.full_screen)



if __name__ == '__main__':
    app = QApplication(sys.argv)
    win = test_widget()
    win.show()
    sys.exit(app.exec_())

这是程序运行时的样子。 在此处输入图像描述 在此处输入图像描述

它并没有完全捕捉到自己,我的期望是它可以完全捕捉到自己,包括屏幕之外的区域

我尝试了 qwidget.grab() 方法,它可以完全抓取自己。但是,当程序嵌入外部窗口时,它无法抓取外部窗口。 在此处输入图像描述 在此处输入图像描述

标签: pythonmacosqtpyqt

解决方案


推荐阅读