首页| 论坛| 消息

标题:基于QT的截图工具
作者:qiuzhiqian
日期:2017-08-06 14:25
内容:

概述
这是一个使用QT设计的截图工具

目前效果图
.

.

.

.

历程
意动
现在网上免费的截图工具很多,最近用了一款很不错的,叫Snipaste。
这个软件就是基于QT开发的,不过并没有开源,软件设计的很好用,界面也很清新,于是我也想自己尝试这设计一个这样的工具来练练手。
于是就有了这样的一个工程

参考
虽然有了想法,但是还是完全不知道怎么办啊。不用担心,QT有大把的官方例程。
我从官方找到了一个叫做sceenshot的例程,这是一个简单的全屏截图的例子,从这个例子中,我们知道了两个重要的东西
1. **获取屏幕分辨率**
const QRect screenGeometry = QApplication::desktop()->screenGeometry(this);
screen_width=screenGeometry.width();
screen_height=screenGeometry.height();


2. **截图API**
QScreen *screen = QGuiApplication::primaryScreen();
originalPixmap = screen->grabWindow(0,x,y,width,height);




其实,在有了以上两个知识后,我们就已经可以截取屏幕上的任意区域的图片了。
grabWindow这个函数我也最关心的就是四个参数x,y,width,height。这四个参数就是一个矩形框参数,只要给定了这四个参数,想截哪里截哪里。
比如我想截取屏幕上的从点(30,50)-->(240,350)的区域截图

QScreen *screen = QGuiApplication::primaryScreen();
originalPixmap = screen->grabWindow(0,30,50,(240-30),(350-50));



思考
那么用户在使用过程中,如何通过交互将这四个参数传递给程序呢?方法还是很多的,比如:
1. 我设计四个输入框,用户在截屏前先手动输入这四个参数对应的值,然后点击按键截屏。嗯...想想都感觉好傻。
2. 用鼠标选定一个区域,然后将矩形区域转化为这四个参数值,然后截屏。嗯大家都是这么干的,既然 ..


#1 [xzp21st 08-07 07:49]

#2 [renzhihe 08-07 16:17]
非常棒
#3 [michelle_hxy 08-07 16:40]

#4 [snolkmg 08-07 16:56]
值得学习
#5 [clickto 08-07 22:11]
感谢楼主分享!!!

<< 1 2 3 >> (1/7)

回复 发表
主题 版块