Sprite可以变灰,为什么ui:Button不行?

GLProgram *glp = GLProgramCache::getInstance()->getGLProgram(GLProgram::SHADER_NAME_POSITION_TEXTURE_GRAY);
Sprite *sp = Sprite::create(“CloseNormal.png”);
sp->setGLProgram(glp);
sp->setPosition(200, 200);
addChild(sp);

如上可以把Sprite变灰

但是
Widget *wd = GUIReader::getInstance()->widgetFromJsonFile(“MyUI_5.json”);
addChild(wd);

Button *btn = (Button *)wd->getChildByName(“Button_1”);
btn->setGLProgram(glp);

对button就没有效果呢?

btn->getVirtualRenderer()->setShaderProgram(glp);

楼主解决了吗?

挖个老坟…btn->getVirtualRenderer()->setShaderProgram()->getSprite(glp);

太坑了。。。。