如何在窗口小部件中强制伪状态

时间:2013-11-04 14:25:46

标签: qt qt4 qtstylesheets

我有自定义小部件,我在这里定义了样式表:

QWidget#this { background-color: red; }
QWidget#this:hover { background-color: yellow; }

当我将鼠标移到窗口小部件上时,这种方法有效,但当我将第一个窗口小部件拖到第一个窗口小部件上时,我没有这种行为。

我已捕获DragMove事件但无法确定发送类似mouseHover事件(MouseMove事件似乎不起作用)。

这可能吗?当我拖动另一个小部件时,还有另一种方法可以使用样式表吗?

1 个答案:

答案 0 :(得分:3)

几天前我遇到了同样的问题。尝试为窗口小部件定义自定义属性,例如拖动,并为样式表使用条件:

QWidget#this[dragging=true]{
    background-color: red;
}

在更改自定义属性后,您可能需要使用QStyle::polish()才能刷新窗口小部件样式。

我希望这会对你有所帮助。