Python 我怎么能在不冻结主线程的情况下等待呢
我想制作一个从侧面展开的表单,但它只是传送Python 我怎么能在不冻结主线程的情况下等待呢,python,pyqt,pyqt5,Python,Pyqt,Pyqt5,我想制作一个从侧面展开的表单,但它只是传送 class SubWindow(QMainWindow): def __init__(self): QMainWindow.__init__(self) self.ui = loadUi("SubWindow.ui", self) butt = QPushButton() self.UploadButton.clicked.connect(self.UploadButtonClic
class SubWindow(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
self.ui = loadUi("SubWindow.ui", self)
butt = QPushButton()
self.UploadButton.clicked.connect(self.UploadButtonClicked)
def UploadButtonClicked(self):
#self.ui.hide()
for x in range(25):
self.LoginText.move(self.LoginText.x(), self.LoginText.y()-10)
self.UploadButton.move(self.UploadButton.x(), self.UploadButton.y()-10)
self.PassText.move(self.PassText.x(), self.PassText.y()-10)
#window.Show()
def Show(self):
self.ui.show()
def Hide(self):
self.ui.hide()
我启动这个程序,我的程序只冻结几秒钟,然后所有东西都传送起来,但我希望它更平滑我知道您希望小部件平滑移动,在这种情况下,解决方案是使用QPropertyAnimation:
def UploadButtonClicked(self):
animation_group = QParallelAnimationGroup(self)
for w in (self.LoginText, self.UploadButton, self.PassText):
start_pos = w.pos()
end_pos = w.pos() + QPoint(0, -10)
animation = QPropertyAnimation(
self,
propertyName=b"pos",
targetObject=w,
startValue=start_pos,
endValue=end_pos,
duration=1000,
)
animation_group.addAnimation(animation)
animation_group.start(QParallelAnimationGroup.DeleteWhenStopped)
您的代码无效-您需要在的
中缩进一些内容。。在
loop中,请将问题中的代码缩进,就像在计算机上一样。