[英]QT custom widget hover
我制作了带有两个标签的自定义小部件。 第一个用于显示选择的颜色,第二个用于显示文本。 我想制作悬停效果。 我尝试了不同的方法,但所有方法都以相同的结果结束。 悬停有效,但仅适用于这两个块(如下图所示:)
我想将整个块突出显示为一个(如下所示的红色矩形区域):
我试图在自定义小部件构造函数中实现:
this->setStyleSheet(":hover{ background-color: rgba(0,20,100,0.5); }");
我还尝试将 QFrame 对象添加到我的 ui 并用我的自定义小部件替换它。 这两种方法都不起作用。 我找到了这个话题: 在 Qt 中为整个小部件设置样式表
有人设法做到了:
最后我解决了在主 QWidget 中创建 QFrame 并设置该 QFrame 的 StyleSheet 的问题。
我尝试过这种方法,但我不确定我是否正确地应用了它(可能不是因为那仍然不起作用)。 有人可以帮我吗?
我有同样的问题,我想你的解决方案是最简单的。 顺便说一句,正确的决定是为您的自定义小部件覆盖 EventFilter() 方法。 像这样:
bool CustomWidget::eventFilter(QObject *obj, QEvent *event)
{
if (obj == ui->pushButton) {
QEvent::Type type = event->type();
if (type == QEvent::HoverLeave) {
qDebug()<<"No";
} else if (type == QEvent::HoverEnter) {
qDebug()<<"YES";
}else if (type == QEvent::MouseButtonPress) {
qDebug()<<"enter";
}
}
return QWidget::eventFilter(obj, event);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.