随意剪——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数量更改
等有时间再说吧!现有的功能已经可以满足目前需要了哈哈哈
-------------------------------------------------------------------------------------------- 06-13-2018 ---------------------------------------------------------------------------------------------------------
更新了!
为什么这么快?
老师要看所以快emmmm,想念我的偏微分,最近2周都没咋看,再这样下去我就更菜了。。。。
这次纯粹为了应付的更新,打乱了很多我的逻辑和底线,不过总体上看起来好像是功能更健全了,实际上丢失了程序的延展性,后续过一段时间再重写吧
更新内容
1.UI剪切板简要编辑
2.界面美观优化
编译环境
qt5.10.0 mingw32
运行截图
注意无法链接远程图片
程序文件
本程序售价一个赞,不二价