Is there a PyQT equivalent to wx.FutureCall (calling a function after window is initialized and drawn)?

pyqt, python, qt, qt4

Solution

I don't know why `showEvent` is not working for you. For me it is working as expected. It is fired after the window is shown.

For the delayed call, you can use `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...

Problem

I am trying to delay setting variables after my main window is opened. I have tried showEvent() but that doesn't work. I know in wxPython there is wx.FutureCall method to use in this type of situation: ``` 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() ``` My question is: how can I delay doing some actions after my PyQT main window does its initialization and is finally shown? How can I do this: ``` 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... ``` Thanks in advance! -Paul

Original source