pyqt5版截图工具

根据反馈的意见,做出一个界面版可以设置采集周期、文件保存位置、截图次数、截图倒计时、剩余空间统计的工具。
如图所示:截图工具
头一次做pyqt的界面应用。主要难点在于多线程的使用,以及界面线程与运行逻辑线程间的通讯。界面向截图线程发送开始/停止信号、触发间隔、截图位置、是否自动开启;截图线程向界面发送截图数目、倒计时。
以下把截图线程代码晒出来。具体代码待打包。

class WorkThread(QThread):

    trigger = pyqtSignal(int, str)
    trigger_next_grab_time = pyqtSignal(int)

    def __init__(self, parent=None):
        super(WorkThread, self).__init__()
        self.filename = ""
        self.inter_time = 10
        self.auto_open = False
        self.run_or_stop = False

    # 定义槽函数,获取文件存储位置、循环间隔、是否运行、是否自动打开
    def set_filename(self, text):
        self.filename = text

    def set_interval_time(self, interval_time):
        self.inter_time = int(interval_time)

    def set_auto_open(self, auto_open):
        self.auto_open = bool(auto_open)

    def run_stop(self, run_or_stop):
        self.run_or_stop = bool(run_or_stop)

    # 在线程中执行定时截图功能
    def run(self):
        global count
        while True:
            if self.run_or_stop:
                count += 1
                pic = ImageGrab.grab()
                name = time.strftime("%Y-%m-%d---%H:%M:%S", time.localtime()).replace(':', '-')
                place = self.filename + "/"
                pic.save(r'%s%s.jpg' % (place, name))

                # 写入日志
                with open("grab_screen_log.txt", "a") as f:
                    f.write("截图%s.jpg成功!\r\n" % name)

                # 执行倒计时函数
                self.trans_next_grub_time_and_sleep(self.inter_time)
                log = '截图 {0}.jpg成功!\r\n'.format(name)

                # 发出信号,传递参数:运行次数count及log内容
                self.trigger.emit(count, log)

    def trans_next_grub_time_and_sleep(self, times):
        # 设置下次抓取的倒计时,并向主界面传递
        for i in range(times, 0, -1):
            time.sleep(1)
            self.trigger_next_grab_time.emit(i)
            print(i)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值