我有一个QLabel的widget类'BlockWidget',我设置qss qss_1的ctor,我想要动画效果,当鼠标移动它时,它会改变它的背景 - 颜色,所以我把它的QSS qss_2,但似乎不工作...我这样的代码:qt mousemoveEvent(涉及到qss)
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();
}
而且我有一个主窗口,我实例化BlockWidget的81个实例。当我的鼠标移动到其中一个时,什么都没有发生。但如果我点击它一些时间,它不改变它的QSS风格(其背景变为蓝色)
您的enterEvent和leaveEvent解决方案实际上解决了从未有过简单答案的“检测悬停事件”问题。我的帽子给你! –