可以将QTreeWidget设置为动画:
tree_widget = QtWidgets.QTreeWidget()
tree_widget.setAnimated(True)这将使QTreeWidgetItems在其崩溃和扩展时具有动画。
是否有一种方法可以访问和编辑动画速度,并键入与QtCore.QVariantAnimation()相同的方式?
我希望能够改变速度和动画类型(如,QtCore.QEasingCurve.Linear),如果可能的话。
发布于 2021-05-18 11:50:41
让我们追踪源头;
animated属性时,我们可以使用找出,它实际上是QTreeView类的一部分。animationsEnabled标志的属性。W、R、N、I、N、G 这个文件不是Qt的一部分。它纯粹是作为实现细节而存在的。此头文件可能在没有通知的情况下从一个版本更改到另一个版本,甚至可以被删除。 我们是认真的。
所以,我看不出一种直接的方式去访问或改变它,而不用触摸和构建源。
更新
最近,我转到Qt样式表引用中的一个Qt样式表引用属性,用样式表覆盖内置的动画持续时间值,并决定在这里添加它。但是,支持哪些小部件的文档很少。幸运的是,在谷歌黑客的帮助下,我找到了相关承诺:
"widget-animation-duration" inurl:"code.qt.io"Diffstat -rw-r-- src/widgets/doc/snippets/code/doc_src_stylesheet.qdoc 4 -rw-r-- src/widgets/doc/src/widgets-and-layouts/stylesheet.qdoc 16 -rw-r--r-- src/widget/itemview/qColumnview.cpp 6 -rw-r--r-- src/widget/itemview/qtreeview.cpp 2 -rw-r--r-- src/小部件/样式/qCommonstyle.cpp 5 -rw-r--r-- src/widgets/styles/qstyle.cpp 9 -rw-r--r-- src/widgets/styles/qstyle.h1 -rw-r--r-- src/小部件/样式/q样式表样式.src 4 -rw-r--r-- src/小部件/小部件/qtabbar_P.H2 -rw-r--r-- src/widget/widget/qwidgetanimator.cpp 4 10文件更改了,41次插入,12次删除
QColumnView和QWidgetAnimator类有这些行,我在测试时能够更改QColumnView动画的持续时间。
if (const int animationDuration = style()->styleHint(QStyle::SH_Widget_Animation_Duration, 0, this)) {
d->currentAnimation.setDuration(animationDuration);但是: QTreeView实现只检查标志是否存在,而不使用它的值和,因为它们通过将树呈现为像素映射并按像素绘制来使其具有动画效果。我们可以假设他们会使用它,因为这看起来像是为它做的准备:
animationsEnabled = q->style()->styleHint(QStyle::SH_Widget_Animation_Duration, 0, q) > 0;https://stackoverflow.com/questions/67500678
复制相似问题