For QPushButton I set an icon with 3 installed images: Normal , Disabled , Active . After building and running on linux, everything works as expected - when you hover the mouse cursor, the picture changes from Normal to Active . But in Windows - does not change.
Looks like some kind of bug. Maybe someone knows a workaround?
The button creation code is as follows:
QIcon ic(":/4Mouse/icons/MousePictures/OnCell.png"); ic.addPixmap( QPixmap(":/4Mouse/icons/MousePictures/OnPict.png"), QIcon::Active); ic.addPixmap( QPixmap(":/4Mouse/icons/MousePictures/OnCellGray.png"),QIcon::Disabled); QPushButton* info = new QPushButton(ic, "", this); const QSize sz = ic.availableSizes()[0]; info->setIconSize(sz); info->setFocusPolicy(Qt::NoFocus); info->setFlat(true); info->setGeometry(x, 1, sz.width(), sz.height()); info->setCursor(QCursor(Qt::PointingHandCursor)); P.S. Now Qt5.6.3 on Windows - the last supporting XP.
addPixmap(const QPixmap &pixmap, Mode mode = Normal, State state = Off)methodaddPixmap(const QPixmap &pixmap, Mode mode = Normal, State state = Off)has the third parameterState. Maybe it's the case? Here is an example . - aleks.andr