遇到乙個好看的背景顏色,想知道它的rgb值,這時就需要螢幕顏色拾取器了。如下,用滑鼠左鍵點中+字,拖曳到要拾取的顏色位置,鬆開左鍵就得該位置的rgb值了。
該工程的qt原始碼和exe工具鏈結
使用qt5.4.1編寫螢幕拾取器的**如下:
//1) 標頭檔案 mycolor.h
#pragma once
#include
#include
"ui_mycolor.h"
class
qgridlayout
;class
qvboxlayout
;class
qlabel
;class
qlineedit
;#if (qt_version < qt_version_check(5,7,0))
#include
#else
#include
#endif
class
mycolor
:public qwidget
;
//2) 原始檔 mycolor.cpp
#pragma execution_character_set("utf-8")
#include
"mycolor.h"
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
mycolor *mycolor::instance =0;
mycolor *mycolor::
instance()
}return instance;
}mycolor::
mycolor
(qwidget *parent)
:qwidget
(parent)
void mycolor::
mousepressevent
(qmouseevent *e)
}void mycolor::
mousereleaseevent
(qmouseevent *e)
void mycolor::
showcolorvalue()
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
desktop()
->
winid()
, x, y,2,
2);#else
primaryscreen()
; qpixmap pixmap = screen-
>
grabwindow
desktop()
->
winid()
, x, y,2,
2);#endif
if(!pixmap.
isnull()
)}}if
(red >
200&& green >
200&& blue >
200)
else
qstring str =tr(
"background-color: rgb(%1);color: rgb(%2)").
arg(strdecimalvalue)
.arg
(strtextcolor)
; labcolor-
>
setstylesheet
(str)
; txtrgb-
>
settext
(strdecimalvalue)
; txtweb-
>
settext
(strhex)
;}
螢幕任意點顏色拾取
發現很多軟體顏色都很養眼,卻不知具體的顏色值是多少,好參考一下。於是想做個螢幕取色的東西。不過這個東西純粹是為了技術目的,用qq就可以搞到這個顏色值,就連畫筆都可以,只不過複雜些罷了。先把效果放上來。如圖1。圖1 color picker 很土啊 做這個東西只要解決如下的兩個問題 1.全域性滑鼠鉤子...
用VC 開發乙個螢幕顏色拾取器
一 用到的關鍵api及說明 1 函式功能 該函式檢索指定座標點的畫素的rgb顏色值。函式原型 colorref getpixel hdc hdc,int nxpos,int nypos 2 函式功能 捕捉滑鼠訊息 函式原型 hwnd setcapture hwnd hwnd hwnd 當前執行緒裡要...
qt 獲取螢幕控制代碼 Qt開源作品23 顏色拾取器
在做很多專案的ui介面的時候,相信絕大部分人都有過抄襲別人的ui介面尤其是顏色的時候,畢竟十個程式設計師九個沒有審美,或者說審美跟一坨屎一樣,大家主要的精力以及擅長點都是在寫功能實現具體功能上面,這個事情怎麼說呢,這確實是程式設計師的主要職責,但是在大部分的小公司,ui也都是需要程式設計師自己去搞定...