Qwidget,如何突出显示光标下的小部件

3

我在QT中创建了一些QLabel类别的小部件,并将其添加到QToolbar中。 我想突出显示鼠标下的特定小部件。 我不明白如何做到这一点。 有人能帮忙吗? 我需要在QT 4上获取此信息。

谢谢。

1个回答

9
你有几个选择。 首先,由于你是QLabel的子类,因此可以直接在你的类中处理鼠标事件。 请确保使用QWidget::setMouseTracking()启用此功能。 在这种情况下,您可以随心所欲地控制您的控件,但是您必须覆盖绘制例程,以便您的类可以以某种特定的方式绘制自己。
不幸的是,QLabel不支持“悬停”样式表状态,因此您无法轻松地使用样式表实现它。但是,如果您考虑从QPushButton进行子类化,则可以获得此美妙的功能,以便通过CSS获得漂亮的高亮效果。有关QT中样式表的更多信息,请查看这里
如果从QPushButton进行子类化对您来说没问题,请查看这里。只需确保您还使用悬停状态,就像在这个简单的示例中一样:
QPushButton:hover {
     background-color: black;
 }
QPushButton:hover {
     background-color: white;
 }

可以在这里找到有关鼠标事件处理的示例。


你好, 感谢你的回答。你能否指出一个具体的例子,演示如何处理QLabel的鼠标事件?我尝试使用QPushButton,但它显示了一些框架,这不是我想要的,所以我使用了QLabel。但请也给我提供一些QPushButton的示例代码。 谢谢。 - Smash
你不需要自己绘制画面,只需在鼠标进入/离开事件中更改调色板的背景颜色即可。这应该足够了。 - Caleb Huitt - cjhuitt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接