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

时间:2009-10-21 09:47:38

标签: c++ qt

我在QT中创建了一些QLabel类型的小部件,并将其添加到QToolbar中。我想突出显示光标下的特定小部件。我无法理解我该怎么做。有人可以帮忙吗?我在QT 4上需要这些信息。

感谢。

1 个答案:

答案 0 :(得分:9)

你有几种可能性。 首先,当你继承QLabel时,你可以直接在你的类中处理mouse events。 确保使用QWidget :: setMouseTracking()来启用它。 在这种情况下,您可以随心所欲地执行任何操作,但您必须这样做 覆盖绘制例程,以便您的类可以以某种特定方式绘制自己。

不幸的是QLabel不支持“悬停”样式表状态,所以你不能 使用样式表轻松完成。但是,如果你考虑从QPushButton继承,你可以拥有这个奇妙的功能 这样在CSS的帮助下你就可以获得很好的高效效果。 有关QT中样式表的更多信息,请查看here

如果您对QPushButton进行子类化很好,那么请查看here。 只需确保你也像这个简单的例子一样使用悬停状态:

QPushButton:hover {
     background-color: black;
 }
QPushButton:hover {
     background-color: white;
 }

QPushButton:hover { background-color: black; } QPushButton:hover { background-color: white; }

可以找到鼠标事件处理的示例here