您可能需要让Qt处理事件,以便选项卡更改生效。你可以用两种方法:
-
插入a
qApp.processEvents()
在
animation()
和
runFunctions()
(
qApp
在中
PyQt5.QtWidgets
)
-
呼叫
运行函数()
通过单次计时器:
QTimer.singleShot(0, runFunctions)
,哪个学校
runFunctions
通过事件循环,因此将首先处理任何挂起的事件(因为
运行函数()
是最新添加的),则
运行函数()
将被呼叫。如果你真的有参数
运行函数()
,使用lambda。
我喜欢第一种方法,因为我发现它更清楚地表明了正在发生的事情(事件需要处理),但我建议在该行中添加一条注释,“这样堆栈选项卡可以更改”。
顺便说一下,您应该使用“signal.connect(slot)”格式的新型符号来表示信号插槽连接,更简洁:
self.StartBtn.clicked.connect(self.start)
因此,对于方法#1,您的代码如下所示:
from PyQt5.QtWidgets import qApp
...
self.StartBtn.clicked.connect(self.start)
...
def start(self):
self.nextPage()
self.animation()
qApp.processEvents()
self.runFunctions()
...