[Qt-ColorEditor] Qt颜色编辑器,QColorDialog的优化版,支持RGB和HSV等多种方式选色
外观
分享一下我实现的颜色编辑器,主要原因是Qt的QColorDialog功能较少没法满足需求,目前已经在zeno中使用了,由于zeno有自己的样式表,所以在zeno里长这样:
如果不加样式表的话长这样:
功能
srgb切换
颜色轮选色
颜色文字选色
颜色滑动条选色,RGB和HSV
上一个/当前颜色切换,这个主要是类似于PS之类的软件,可以缓存一个颜色用来备选或者撤销
屏幕取色,主要实现是截取当前的屏幕然后根据鼠标的位置设置颜色,支持多个屏幕(我自己只测试了2个屏幕)
颜色面板,可以把想要的颜色记录在这,持久化存储,即便关闭下一次打开也会自动加载
互补色取色,主要参考color-wheel
地址
github地址Qt-ColorEditor
实现时都放在一个头文件和一个源文件里,因此集成到项目里只需要复制这两个文件
接口参照QColorDialog的方式:
#include "ColorWidgets/ColorEditor.h"
// ...
// call here, you can find this in MainWindow.cpp
auto btn = new ColorButton(this);
btn->setColor(Qt::blue);
setCentralWidget(btn);
connect(btn, &ColorButton::clicked, this, [this, btn](){
auto color = ColorEditor::getColor(btn->color(), this, "");
btn->setColor(color);
});
最后还得说一句,QColorDialog的功能确实有点少了,我在实现的时候参考了很多3D软件,如Houdini、Blender、Unity等,其中Houdini的功能最多,因此最终的形态也和Houdini类似了。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在外漂泊的这几年总结和感悟,展望未来
· 博客园 & 1Panel 联合终身会员上线
· 支付宝事故这事儿,凭什么又是程序员背锅?有没有可能是这样的...
· https证书一键自动续期,帮你解放90天限制
· 在 ASP.NET Core WebAPI如何实现版本控制?