Python 是否有与wx.FutureCall等价的PyQT(在初始化和绘制窗口后调用函数)?

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

我试图在主窗口打开后延迟设置变量。我尝试了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,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板的串行连接-它需要一些延迟。耸耸肩