title: How to create new PyQt4 windows from an existing window?
body: <p>I've been trying to call a new window from an existing one using python3 and Qt4.</p>
  
  <p>I've created two windows using Qt Designer (the main application and another one), and I've converted the .ui files generated by Qt Designer into .py scripts - but I can't seem to create new windows from the main application.</p>
  
  <p>I tried doing this:</p>
  
  <pre class="lang-py prettyprint-override"><code>############### MAIN APPLICATION SCRIPT ################
  
  from PyQt4 import QtCore, QtGui
  import v2
  
  try:
      _fromUtf8 = QtCore.QString.fromUtf8
  except AttributeError:
      _fromUtf8 = lambda s: s
  
  class Ui_Form(object):
      def setupUi(self, Form):
          Form.setObjectName(_fromUtf8("Form"))
          Form.resize(194, 101)
          self.button1 = QtGui.QPushButton(Form)
          self.button1.setGeometry(QtCore.QRect(50, 30, 99, 23))
          self.button1.setObjectName(_fromUtf8("button1"))
  
          self.retranslateUi(Form)
          QtCore.QMetaObject.connectSlotsByName(Form)
  
      def retranslateUi(self, Form):
          Form.setWindowTitle(QtGui.QApplication.translate("Form", "Form", None, QtGui.QApplication.UnicodeUTF8))
          self.button1.setText(QtGui.QApplication.translate("Form", "Ventana", None, QtGui.QApplication.UnicodeUTF8))
  
          self.button1.connect(self.button1, QtCore.SIGNAL(_fromUtf8("clicked()")), self.mbutton1)
  
      def mbutton1(self):
          v2.main()
  
  
  
  if __name__ == "__main__":
      import sys
      app = QtGui.QApplication(sys.argv)
      Form = QtGui.QWidget()
      ui = Ui_Form()
      ui.setupUi(Form)
      Form.show()
      sys.exit(app.exec_())
  </code></pre>
  
  <pre class="lang-py prettyprint-override"><code>################## SECOND WINDOW #######################
  
  from PyQt4 import QtCore, QtGui
  
  try:
      _fromUtf8 = QtCore.QString.fromUtf8
  except AttributeError:
      _fromUtf8 = lambda s: s
  
  class Ui_Form(object):
      def setupUi(self, Form):
          Form.setObjectName(_fromUtf8("Form"))
          Form.resize(400, 300)
          self.label = QtGui.QLabel(Form)
          self.label.setGeometry(QtCore.QRect(160, 40, 57, 14))
          self.label.setObjectName(_fromUtf8("label"))
  
          self.retranslateUi(Form)
          QtCore.QMetaObject.connectSlotsByName(Form)
  
      def retranslateUi(self, Form):
          Form.setWindowTitle(QtGui.QApplication.translate("Form", "Form", None, QtGui.QApplication.UnicodeUTF8))
          self.label.setText(QtGui.QApplication.translate("Form", "LABEL 2", None, QtGui.QApplication.UnicodeUTF8))
  
  def main():
      import sys
      app = QtGui.QApplication(sys.argv)
      Form = QtGui.QWidget()
      ui = Ui_Form()
      ui.setupUi(Form)
      Form.show()
      sys.exit(app.exec_())
  </code></pre>
  
  <p>But I get this Error message:</p>
  
  <pre class="lang-none prettyprint-override"><code> QCoreApplication::exec: The event loop is already running
   QPixmap: Must construct a QApplication before a QPaintDevice
  </code></pre>