我有一個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解決方案實際上解決了從未有過簡單答案的「檢測懸停事件」問題。我的帽子給你! –