随意剪——win系统剪切板拓展源码

编译环境

win10  qt-5-10-0  mingw32位

依赖库

pthread

运行截图

程序目的

对于CV程序员来说一个剪切板是绝对不够滴

1.随意剪拓展到了9个剪切板

2.用全局热键控制剪切板的复制和粘贴

3.提供了一个小悬浮窗用于观察剪切板内容

4.可从系统托盘中退出

5.提供了便利的屏幕截图

热键

ctrl+shift+c    如ctrl+c一样,但是将内容复制到随意剪的剪切板

ctrl+shift+1~9     粘贴编号为1~9的随意剪剪切板内容

UI按钮

剪刀按钮     截图到系统剪切板

文本按钮        将当前系统剪切板内容添加到随意剪

源代码

  踩过的坑
程序主体按mvc的理念设计,基于QT的图形视图框架,分两个大模块,剪切板和UI控制
剪切板用c语言写的,pthread控制线程。
UI控制上子项(item)和主控制(myview)间全部使用信号槽链接。
1.clipboard最坑最遗憾的是我快写完了发现系统剪切板不支持非gui线程的写入,无奈较费时的paste只好写在主线程里了
2.比较坑的是QMimeData若用imageData()读取图片的话一直是Invalid,必须用QPixmap::loadFromData(QByteArray),调试了半天emmm
3.QLabel上的事件没能完全发送到父项上,然后又没时间了,于是只好在剪切板里是图片的时候在UI上打马赛克。。。。
4.QT5.10若需要使用win32的api的话直接用就行了,不需要在Pro文件里链接LIBS+=User32.LIB
5.QML的MouseArea只适合矩形区域,这就注定了特殊形状的程序没法简便完成鼠标事件的正确传递(实际上完全不可能)。有(热心)网友提供了思路——转一个灰度图,在上面不同区域赋不同值,鼠标点击以后判断该位置的值,就可以自定义任意多的按钮。但在MouseArea上,响应区域总是矩形,哪怕该区域是透明的 是透明的!
6.这次一共写了2周,7天设计和完成clipboard,4天尝试用QML写UI,最后失败,转用C++写界面加调试共3天。
后续可补的坑
1.UI剪切板编辑
2.windows 全局ctrl+c/v函数封装
3.截图强化
4.程序再启动检查(运行目录下添加用户使用情况记录)
5.历史纪录导入(运行目录下保存用户文件)
6.全局热键开关和设置
7.剪切板和UI数量更改
等有时间再说吧!现有的功能已经可以满足目前需要了哈哈哈
 
 
本程序售价一个赞,不二价

猜你喜欢

转载自www.cnblogs.com/dusty-cjh/p/9167627.html