pyqt点击进行区域截图
时间: 2023-11-11 11:51:33 浏览: 38
你可以使用 pyqt 的 QScreen 类来获取屏幕截图,然后使用 QPixmap 类对截图进行处理。下面是一个样例代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout, QVBoxLayout, QLabel, QPushButton
from PyQt5.QtGui import QPixmap, QPainter, QCursor, QScreen
from PyQt5.QtCore import Qt, QPoint, QIODevice
class ScreenshotWidget(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.resize(500, 500)
self.setWindowTitle("Screenshot")
# 创建一个显示截图的 label
self.screenshot_label = QLabel(self)
self.screenshot_label.setAlignment(Qt.AlignCenter)
# 创建一个截取按钮
screenshot_button = QPushButton("截图", self)
screenshot_button.clicked.connect(self.on_screenshot_button_clicked)
# 创建一个布局并将 label 和按钮添加到其中
vbox = QVBoxLayout()
vbox.addWidget(self.screenshot_label)
vbox.addWidget(screenshot_button)
self.setLayout(vbox)
def on_screenshot_button_clicked(self):
# 获取屏幕截图并显示
screen = QApplication.primaryScreen()
screenshot = screen.grabWindow(QApplication.desktop().winId())
self.screenshot_label.setPixmap(screenshot)
if __name__ == '__main__':
app = QApplication(sys.argv)
win = ScreenshotWidget()
win.show()
sys.exit(app.exec_())
```
运行此程序后,点击按钮即可进行区域截图。