繁体   English   中英

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

[英]How to animate widget transparency in Qt4?

我需要设置小部件透明度的动画。 在我看来,我应该使用QPropertyAnimation 但是如何定义半透明的小部件? 我应该使用一些像这样的

从我玩过的内容来看,您的问题有两个子答案:

  1. 如果要设置QWidget顶级窗口的不透明度的动画,则可以在“ windowOpacity”值上将QPropertyAnimation从0设置为1。 由于我使用的是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();

这仅在支持某种复合扩展的系统上有效。

希望能帮助到你!

您可以尝试在QWidget中使用windowOpacity属性。 如果这不起作用,则可能需要定义自己的属性,并将其用于小部件的paint事件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM