Python 是否有与wx.FutureCall等价的PyQT(在初始化和绘制窗口后调用函数)?
我试图在主窗口打开后延迟设置变量。我尝试了showEvent(),但没有成功。我知道在wxPython中,在这种情况下可以使用wx.FutureCall方法:Python 是否有与wx.FutureCall等价的PyQT(在初始化和绘制窗口后调用函数)?,python,qt,qt4,pyqt,Python,Qt,Qt4,Pyqt,我试图在主窗口打开后延迟设置变量。我尝试了showEvent(),但没有成功。我知道在wxPython中,在这种情况下可以使用wx.FutureCall方法: class MyFrame(wx.Frame): def __init__(..frame init parms.., ..your init parms..): wx.Frame.__init__(..frame init parms..) self.Show() wx.FutureCall(500,sel
class MyFrame(wx.Frame):
def __init__(..frame init parms.., ..your init parms..):
wx.Frame.__init__(..frame init parms..)
self.Show()
wx.FutureCall(500,self.OnLoad) #1/2 seconds from now to call OnLoad()
def OnLoad(self, ..your init parms..):
..your init code..
self.Refresh()
我的问题是:在PyQT主窗口初始化并最终显示之后,如何延迟执行某些操作?我如何做到这一点:
class MyWindow(QtGui.QMainWindow):
def __init__(self,parent=None):
QtGui.QWidget.__init__(self,parent)
... init stuff here...
self.FutureCall(500,self.OnLoad)
def OnLoad(self,event):
... my stuff here...
提前谢谢!
-保罗我不知道为什么
showEvent
不适合你。对我来说,这是工作的预期。它在显示窗口后被激发
对于延迟呼叫,您可以使用QTimer.singleShot
:
class MyWindow(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
... init stuff here...
QtCore.QTimer.singleShot(500, self.OnLoad)
def OnLoad(self):
... my stuff here...
令人惊叹的。它起作用了。谢谢我用它来打开我的Arduino板的串行连接-它需要一些延迟。耸耸肩