Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在';QPropertyAnimation';在pyqt5中?_Python_Pyqt_Pyqt5 - Fatal编程技术网

Python 如何在';QPropertyAnimation';在pyqt5中?

Python 如何在';QPropertyAnimation';在pyqt5中?,python,pyqt,pyqt5,Python,Pyqt,Pyqt5,我成功地为我的小部件创建了一个动画,但我无法设置动画的方向。默认情况下,qwid1小部件扩展到右方向,我想将动画的方向设置为左方向,如下所示 如果您分析初始和最终QRect,问题很明显: 首字母:200200600700 决赛:200、60、300、400 解决方案是构建最终的QRect,使“左”比另一个小,而其他的保持不变 def展开(自): an=QPropertyAnimation(self.qwid1,b“几何体”,self) ri=QRect(self.qwid1.geometry

我成功地为我的小部件创建了一个动画,但我无法设置动画的方向。默认情况下,qwid1小部件扩展到右方向,我想将动画的方向设置为左方向,如下所示


如果您分析初始和最终QRect,问题很明显:

  • 首字母:200200600700
  • 决赛:200、60、300、400
解决方案是构建最终的QRect,使“左”比另一个小,而其他的保持不变

def展开(自):
an=QPropertyAnimation(self.qwid1,b“几何体”,self)
ri=QRect(self.qwid1.geometry())
rf=ri.调整(-100,0,0,0)
a.设置起始值(ri)
一个.setEndValue(rf)
设置持续时间(500)
an.start(QAbstractAnimation.DeleteWhenStopped)

如果您分析初始和最终QRect,问题很明显:

  • 首字母:200200600700
  • 决赛:200、60、300、400
解决方案是构建最终的QRect,使“左”比另一个小,而其他的保持不变

def展开(自):
an=QPropertyAnimation(self.qwid1,b“几何体”,self)
ri=QRect(self.qwid1.geometry())
rf=ri.调整(-100,0,0,0)
a.设置起始值(ri)
一个.setEndValue(rf)
设置持续时间(500)
an.start(QAbstractAnimation.DeleteWhenStopped)

谢谢@eyllanesc。。。我想如果我把“x”设为任何负数,它就会消失。。。您能告诉我为什么将(QAbstractAnimation.DeleteWhenStopped)作为argument@RoomDroid1)我没有给“x”加任何负数,建议您打印
rf
。2) 阅读文档:,请在提问之前进行调查。@RoomDroid我强调:我不会回答用户没有显示任何调查的问题,因此如果您看到其他评论而没有回答,您已经知道可能的原因。谢谢@eyllanesc。。。我想如果我把“x”设为任何负数,它就会消失。。。您能告诉我为什么将(QAbstractAnimation.DeleteWhenStopped)作为argument@RoomDroid1)我没有给“x”加任何负数,建议您打印
rf
。2) 阅读文档:,请在提问之前进行调查。@RoomDroid我强调:我不会回答用户没有显示任何调查的问题,因此如果您看到其他评论而没有回答,您已经知道可能的原因。
import sys
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *


class test(QWidget):
    def __init__(self):
        super().__init__()


        self.setGeometry(200, 200, 600, 700)

        self.b = QPushButton('expand', self)
        self.b.clicked.connect(self.expand)

        self.qwid1 = QWidget(self)
        self.qwid1.setGeometry(200, 60, 200, 400)
        self.qwid1.setStyleSheet(''' background-color: blue; ''')
    

    def expand(self):

        self.an = QPropertyAnimation(self.qwid1, b'geometry')
        self.an.setStartValue(self.qwid1.geometry())
        self.an.setEndValue(QRect(200, 60, 300, 400))
        self.an.setDuration(500)

        self.an.start()

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    my_test = test()
    my_test.show()
    app.exec()