• 126阅读
  • 5回复

[提问]【求助】qt改变鼠标光标颜色api [复制链接]

上一主题 下一主题
离线ulyssespan
 

只看楼主 倒序阅读 楼主  发表于: 11-21
最近想做个能改变鼠标光标颜色的功能,类似于window下鼠标设置光标颜色,但是QT中只找到了改变鼠标光标形状的api,求助!!!
离线zy1233

只看该作者 1楼 发表于: 11-23
从Qpixmap构造一个Qcursor,Qpixmap让设计帮你制作一个你要的颜色鼠标
离线ulyssespan

只看该作者 2楼 发表于: 11-26
我的widght是穿透效果的,所以界面的上的鼠标控制不了,我想设置系统鼠标的颜色。
离线zy1233

只看该作者 3楼 发表于: 11-26
#include <windows.h>
#include "WinUser.h"
#pragma comment(lib, "User32.lib")

//设置自定义鼠标样式
QString dirPath = QCoreApplication::applicationDirPath() + "/";
QString fullDirPath = dirPath + "Picker32.ico";
LOG(INFO) <<"cursor fullDirPath "<<fullDirPath.toStdString();

QByteArray ba = fullDirPath.toLatin1();
char* szStr = ba.data();
LOG(INFO) <<std::string(szStr);

WCHAR wszClassName[256];
memset(wszClassName,0,sizeof(wszClassName));
MultiByteToWideChar(CP_ACP,0,szStr,strlen(szStr)+1,wszClassName,
                    sizeof(wszClassName)/sizeof(wszClassName[0]));
                    
HCURSOR hcur = (HCURSOR)LoadImage(NULL,wszClassName,IMAGE_ICON,32,32,LR_LOADFROMFILE);
::SetSystemCursor(hcur, 32512);




::SystemParametersInfo(SPI_SETCURSORS,0,NULL,SPIF_SENDCHANGE); //设置鼠标为默认样式

HCURSOR hcur = LoadCursorW(NULL, IDC_ARROW);//系统样式
::SetSystemCursor(hcur, 32512);
4条评分好评度+1贡献值+1金钱+10威望+1
ulyssespan 好评度 +1 感谢,找了好久,按你的成功了。 11-27
ulyssespan 贡献值 +1 感谢,找了好久,按你的成功了。 11-27
ulyssespan 威望 +1 感谢,找了好久,按你的成功了。 11-27
ulyssespan 金钱 +10 感谢,找了好久,按你的成功了。 11-27
离线ulyssespan

只看该作者 4楼 发表于: 11-27
感谢,找了好久,按你的成功了。
离线ulyssespan

只看该作者 5楼 发表于: 11-27
感谢,找了好久,按你的成功了。
快速回复
限100 字节
 
上一个 下一个