Qt颜色拾取器怎么实现
发表于:2024-10-05 作者:千家信息网编辑
千家信息网最后更新 2024年10月05日,本篇内容主要讲解"Qt颜色拾取器怎么实现",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Qt颜色拾取器怎么实现"吧!一、前言在做很多项目的UI界面的时候,相
千家信息网最后更新 2024年10月05日Qt颜色拾取器怎么实现
本篇内容主要讲解"Qt颜色拾取器怎么实现",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Qt颜色拾取器怎么实现"吧!
一、前言
在做很多项目的UI界面的时候,相信绝大部分人都有过抄袭别人的UI界面尤其是颜色的时候,毕竟十个程序员九个没有审美,或者说审美跟一坨屎一样,大家主要的精力以及擅长点都是在写功能实现具体功能上面,这个事情怎么说呢,这确实是程序员的主要职责,但是在大部分的小公司,UI也都是需要程序员自己去搞定的,自己想不出来怎么办,借鉴咯,不知道颜色值怎么办,用颜色拾取器点一下咯。 Qt内置的grabWindow方法,可以指定句柄获取对应的颜色,所以如果要对屏幕取得颜色值的话,传入整个屏幕的句柄即可,屏幕的句柄在Qt中的表示是QApplication::desktop()->winId(),要实时获取怎么办呢,当然最简单的办法就是开个定时器咯,定时器不断调用这个方法,获取屏幕鼠标坐标和颜色值。
二、代码思路
void ColorWidget::showColorValue(){ if (!pressed) { return; } int x = QCursor::pos().x(); int y = QCursor::pos().y(); txtPoint->setText(tr("x:%1 y:%2").arg(x).arg(y)); QString strDecimalValue, strHex, strTextColor; int red, green, blue;#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) QPixmap pixmap = QPixmap::grabWindow(QApplication::desktop()->winId(), x, y, 2, 2);#else QScreen *screen = QApplication::primaryScreen(); QPixmap pixmap = screen->grabWindow(QApplication::desktop()->winId(), x, y, 2, 2);#endif if (!pixmap.isNull()) { QImage image = pixmap.toImage(); if (!image.isNull()) { if (image.valid(0, 0)) { QColor color = image.pixel(0, 0); red = color.red(); green = color.green(); blue = color.blue(); QString strRed = tr("%1").arg(red & 0xFF, 2, 16, QChar('0')); QString strGreen = tr("%1").arg(green & 0xFF, 2, 16, QChar('0')); QString strBlue = tr("%1").arg(blue & 0xFF, 2, 16, QChar('0')); strDecimalValue = tr("%1, %2, %3").arg(red).arg(green).arg(blue); strHex = tr("#%1%2%3").arg(strRed.toUpper()).arg(strGreen.toUpper()).arg(strBlue.toUpper()); } } } if (red > 200 && green > 200 && blue > 200) { strTextColor = "10, 10, 10"; } else { strTextColor = "255, 255, 255"; } QString str = tr("background-color: rgb(%1);color: rgb(%2)").arg(strDecimalValue).arg(strTextColor); labColor->setStyleSheet(str); txtRgb->setText(strDecimalValue); txtWeb->setText(strHex);}
三、效果图
到此,相信大家对"Qt颜色拾取器怎么实现"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
颜色
屏幕
句柄
怎么办
方法
程序
程序员
内容
功能
定时器
时候
是在
界面
学习
审美
实用
更深
不断
事情
代码
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
河南计算机网络技术书
互联网软件开发工程师劣势
软件开发基础课官方最新版
软件开发是工资待遇
数据库概论王珊第五版ppt
江苏机电软件开发方法
网络安全提醒我们应该怎么做
上海期货 软件开发
网络技术发展趋势是怎样的
捕鱼软件开发公司
海川玩的宝可梦服务器怎么进手机
网络安全002197
关网络安全的手抄报内容
A2矿机服务器价格
网页服务器代理失败
lol服务器什么时候开的
vba数据库游标
第三次世界大战如何选择服务器
tic服务器
企业网站制作服务器
网络安全 办公室 北京
如何查看sql数据库版本
软件开发基础课官方最新版
网络安全知识手抄报模版
用友创建临时数据库失败
软件开发文档iso标准
matlab链接数据库有什么用
网络安全能考研究生吗
apex不同服务器怎么组队
m1芯片做软件开发够用吗