title: How do I switch layouts in a window using PyQt?? (Without closing/opening windows)
body: <p>I am currently attempting to create a program using python and PyQt4 (not Qt Designer).
  I created a login class (QDialog) and a Homepage class (QMainWindow). However, because my program will consist of loads of pages (the navigation through the program will be large) i wanted to know how to switch layouts in QMainWindow rather than constantly creating new windows and closing old ones. For example, i would have the MainWindow ('HomePage') layout set as the default screen once logged in and would then have a subclass within MainWindow which allows me to navigate to user settings (or any other page). Instead of creating a new window and closing MainWindow, is there a way for me to swap the MainWindow layout to the User Setting layout?? (apologies if this doesnt make sense, im new to PyQt).
  An example code is shown below (V.Basic code)</p>
  <h1>----------------------------------------------------------------------------------</h1>
  <pre><code>import sys     
  from PyQt4.QtGui import *      
  from PyQt4.QtCore import *     
  
  class MainWindow(QMainWindow):
      #Constructor
      def __init__(self):
          super(MainWindow, self).__init__() #call super class constructor
          
          button1 = QPushButton(&quot;User Settings&quot;, self)
          button1.clicked.connect(UserSelection)
          button1.resize(50,50)
          button1.move(350,50)
  
          self.show()
  
  class UserSelection(?):
      ...
  
  def main():
     app = QApplication(sys.argv) #Create new application
     Main = MainWindow()
     sys.exit(app.exec_()) #Monitor application for events
  
  if __name__ == &quot;__main__&quot;:
      main()
  </code></pre>