Python+PyQt5开发一个截图工具

 更新时间:2024年12月31日 09:16:24   作者:moddy  
这篇文章主要为大家详细介绍了如何使用Python和PyQt5开发一个截图工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

制作一个简单的电脑截图应用,可以使用 Python 结合 PyQtTkinter 开发一个图形化界面程序,同时使用 Pillowpyautogui 来实现截图功能。以下是一个使用 Python 和 PyQt5 的示例代码,展示如何手动写代码实现一个截图工具。

实现步骤

安装依赖库

pip install PyQt5 pyautogui pillow

代码实现

import sys
import pyautogui
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QFileDialog, QLabel
from PyQt5.QtGui import QPixmap
from PyQt5.QtCore import Qt
from PIL import Image

class ScreenshotApp(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("截图工具")
        self.setGeometry(300, 300, 400, 300)
        
        # 添加按钮
        self.screenshot_button = QPushButton("截图", self)
        self.screenshot_button.setGeometry(150, 50, 100, 50)
        self.screenshot_button.clicked.connect(self.take_screenshot)
        
        self.save_button = QPushButton("保存截图", self)
        self.save_button.setGeometry(150, 150, 100, 50)
        self.save_button.clicked.connect(self.save_screenshot)
        self.save_button.setEnabled(False)  # 禁用按钮,直到截图完成
        
        # 显示截图的标签
        self.screenshot_label = QLabel(self)
        self.screenshot_label.setGeometry(50, 220, 300, 50)
        self.screenshot_label.setAlignment(Qt.AlignCenter)
        
        # 存储截图
        self.screenshot = None

    def take_screenshot(self):
        # 截取全屏
        screenshot = pyautogui.screenshot()
        self.screenshot = screenshot
        self.save_button.setEnabled(True)  # 启用保存按钮
        
        # 将截图显示在 GUI 中
        screenshot.save("temp.png")  # 暂时保存为临时文件
        pixmap = QPixmap("temp.png")
        self.screenshot_label.setPixmap(pixmap.scaled(300, 50, Qt.KeepAspectRatio))
        self.screenshot_label.setText("截图完成,请保存!")

    def save_screenshot(self):
        if self.screenshot:
            # 选择保存路径
            file_path, _ = QFileDialog.getSaveFileName(self, "保存截图", "", "PNG Files (*.png);;All Files (*)")
            if file_path:
                self.screenshot.save(file_path)
                self.screenshot_label.setText(f"截图已保存到: {file_path}")
        else:
            self.screenshot_label.setText("没有可保存的截图!")

# 主程序运行
if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = ScreenshotApp()
    window.show()
    sys.exit(app.exec_())

功能说明

1.界面布局

  • 一个截图按钮用于截图。
  • 一个保存按钮用于保存截图。
  • 标签显示截图状态或截图缩略图。

2.功能点

  • 使用 pyautogui.screenshot() 实现屏幕截图。
  • 使用 QFileDialog 提供保存截图的对话框。
  • 截图后可在 GUI 中显示缩略图。

扩展功能

如果需要更复杂的功能,可以进一步开发:

  • 区域截图:让用户用鼠标拖拽选择截图区域。
  • 热键功能:使用 keyboard 库监听快捷键。
  • 截图编辑:增加文字标注、画框等功能。
  • 多语言支持:为国际用户提供多语言界面。

这段代码可以直接运行,作为一个入门项目,适合学习界面编程和基本功能开发!

到此这篇关于Python+PyQt5开发一个截图工具的文章就介绍到这了,更多相关Python截图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python打包exe文件一步步图解明了简单

    Python打包exe文件一步步图解明了简单

    之前看很多人都在问,Python怎么打包exe可执行文件,雀氏有点多,那么我来了,给大家整一个Python打包exe可执行文件的究极教程
    2021-11-11
  • matplotlib阶梯图的实现(step())

    matplotlib阶梯图的实现(step())

    这篇文章主要介绍了matplotlib阶梯图的实现(step()),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • python数学建模是加深Numpy和Pandas学习

    python数学建模是加深Numpy和Pandas学习

    这篇文章主要介绍了python数学建模是加深Numpy和Pandas学习,紧接上一篇学习内容展开Numpy更多相关内容,需要的小伙伴可以参考一下
    2022-07-07
  • 手动安装Anaconda环境变量的实现教程

    手动安装Anaconda环境变量的实现教程

    这篇文章主要介绍了手动安装Anaconda环境变量的实现教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • 解决Linux系统中python matplotlib画图的中文显示问题

    解决Linux系统中python matplotlib画图的中文显示问题

    这篇文章主要介绍了解决Linux系统中python matplotlib画图的中文显示问题,需要的朋友可以参考下
    2017-06-06
  • django 微信网页授权登陆的实现

    django 微信网页授权登陆的实现

    这篇文章主要介绍了django 微信网页授权登陆的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Python实现的建造者模式示例

    Python实现的建造者模式示例

    这篇文章主要介绍了Python实现的建造者模式,结合完整实例形式分析了构造者模式的具体定义与相关使用操作技巧,需要的朋友可以参考下
    2018-08-08
  • python使用epoll实现服务端的方法

    python使用epoll实现服务端的方法

    今天小编就为大家分享一篇python使用epoll实现服务端的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • jupyter notebook中图片显示不出来的解决

    jupyter notebook中图片显示不出来的解决

    这篇文章主要介绍了jupyter notebook中图片显示不出来的解决操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • python自动化实现登录获取图片验证码功能

    python自动化实现登录获取图片验证码功能

    这篇文章主要介绍了python自动化实现登录获取图片验证码功能,本文通过实例截图的形式给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11

最新评论