如何在Qt4中为小部件透明度设置动画?

Ste*_*min 0 qt qt4

我需要动画小部件透明度.在我看来,我应该使用QPropertyAnimation.但我怎么能定义小部件半透明?我应该使用一些像这样的

Dan*_*mon 8

根据我至少玩过的内容,您的问题有两个子答案:

  1. 如果要设置QWidget顶层窗口的不透明度的动画,可以在"windowOpacity"值上使用0到1的QPropertyAnimation.您可能想要检查确切的语法,因为我正在使用PyQt.
  2. 如果要为按钮或文本标签的不透明度设置动画,则此属性将不起作用,您需要使用QGraphicsWidgets.他们继承了QGraphicsItem,所以,他们有opacity.不幸的是,这意味着使用代理窗口小部件QGrapgicsProxyWidget来保持正常窗口小部件与其图形窗口小部件同步,因为QGraphicsWidget不继承QWidget.要了解更多信息,请查看动画框架示例,特别是状态机,了解如何使用代理窗口小部件.

对于windowOpacity动画:

QPropertyAnimation animate = new QPropertyAnimation(this, "windowOpacity", this);

animate.setDuration(100); animate.setStartValue(1); animate.setEndValue(0); animate.start();

这仅适用于支持某种Composite扩展的系统.

希望能帮助到你!