我有一个QLabel的小部件类'BlockWidget'子类,在ctor中我设置了它的qss qss_1,我想要动画效果,当鼠标移动它时,它会改变它的背景颜色,所以我设置它的qss qss_2,但是它似乎不起作用......我的代码是这样的:
BlockWidget::BlockWidget(const QString &objname)
{
this->setObjectName(objname);
setAlignment(Qt::AlignCenter);
setStyleSheet(tr("BlockWidget#%1{color:white; background-color: gray; font-size:18px;"
"font-family:'Consolas';}").arg(objectName()));
}
void BlockWidget::mouseMoveEvent(QMouseEvent *ev)
{
setStyleSheet(tr("BlockWidget#%1{color:white; background-color: blue; font-size:18px;"
"font-family:'Consolas';}").arg(objectName()));
repaint();
}
我有一个主窗口,我实例化了 81 个 BlockWidget 实例。当我的鼠标移到其中一个时,什么也没发生。但是如果我点击它几次,它会改变它的 qss 样式(它的背景变成蓝色)