Qt使用一行代码轻松改变QPushButton QToolButton图标颜色
需求:Qt程序主界面改变主题颜色时,例如白色背景色切换为深色模式,背景会变成深色。通常按键的图标会使用黑色,这时应该将图标改为白色系,应该轻松快捷去实现,而不是准备多一套白色系的图标供读取。
我查了挺多博客,挺多方法都绕得挺麻烦的,我做了不少尝试,最后发现其实用一行代码就能实现这个换颜色的需求,分享给各位。
解决方法
先列代码
pushButton->setIcon(QColorIcon::GetIcon(":/icon/icon/xxxx.png", QColor(170,170,191)));
直接调用QPushButton的setIcon函数,使用QColorIcon的静态方法去获取图标对象就行了。
GetIcon有两个参数,第一个是图标的路径(可以是文件的绝对路径,也可以是资源文件中的路径,不知道用哪个就多尝试)
第二个参数是颜色参数,用QColor包装一下rgb颜色值传入就行。
效果
原图标:
效果: