title: Python NameError: global name 'Form' is not defined pyqt
body: <p>I am trying to design Garage App.  The app has two options (Sign IN, Sign Up)
  and this Widget called 'Welcome Window' when user chooses Sign IN. </p>
  
  <p>The program should close 'Welcome Window' and open anther widget called 'Log In', then the 'Log In' widget has two push buttons:  'Ok' and 'Back'.  When the user presses 'Back', it should Close 'Log In' widget and reopen 'Welcome Window'.  But it open 'Welcome window' without close 'Login window'
  and raises the error </p>
  
  <blockquote>
    <p>NameError: global name 'Form' is not defined code of 'WelcomeWidget'</p>
  </blockquote>
  
  <pre><code>from PyQt4 import QtCore, QtGui
  import SignIN
  
  try:
       _fromUtf8 = QtCore.QString.fromUtf8
  except AttributeError:
       def _fromUtf8(s):
           return s
  
  try:
      _encoding = QtGui.QApplication.UnicodeUTF8
      def _translate(context, text, disambig):
          return QtGui.QApplication.translate(context, text, disambig, 
  _encoding)
  except AttributeError:
      def _translate(context, text, disambig):
          return QtGui.QApplication.translate(context, text, disambig)
  
  class Ui_Form(object):
      def SignINF(self):
          self.SignINWindow = QtGui.QWidget()
          self.ui = SignIN.Ui_Form()
          self.ui.setupUi(self.SignINWindow)
          self.SignINWindow.show()
          Form.close()
      def setupUi(self, Form):
          Form.setObjectName(_fromUtf8("Form"))
          Form.resize(500, 360)
          Form.setStyleSheet(_fromUtf8("background-image: 
  url(:/img/Screenshot from 2017-09-20 17-37-17.png);"))
          self.pushButton_2 = QtGui.QPushButton(Form)
          self.pushButton_2.setGeometry(QtCore.QRect(120, 290, 75, 31))
          self.pushButton_2.setStyleSheet(_fromUtf8("color: rgb(255, 
  255, 255);\n"
  "font: 63 oblique 12pt \"URW Gothic L\";"))
          self.pushButton_2.setObjectName(_fromUtf8("pushButton_2"))
          self.pushButton_2.clicked.connect(self.SignINF)
          self.pushButton = QtGui.QPushButton(Form)
          self.pushButton.setGeometry(QtCore.QRect(29, 291, 75, 31))
          self.pushButton.setStyleSheet(_fromUtf8("color: rgb(255, 255, 
  255);\n"
  "font: 63 oblique 12pt \"URW Gothic L\";"))
          self.pushButton.setObjectName(_fromUtf8("pushButton"))
          self.label = QtGui.QLabel(Form)
          self.label.setGeometry(QtCore.QRect(30, 50, 458, 34))
          font = QtGui.QFont()
          font.setFamily(_fromUtf8("DejaVu Serif"))
          font.setPointSize(22)
          font.setBold(False)
          font.setItalic(False)
          font.setWeight(9)
          self.label.setFont(font)
          self.label.setStyleSheet(_fromUtf8("color: rgb(255, 255, 
  255);\n"
  "font: 75 22pt \"DejaVu Serif\";\n"
  ""))
          self.label.setObjectName(_fromUtf8("label"))
          self.label_2 = QtGui.QLabel(Form)
          self.label_2.setGeometry(QtCore.QRect(360, 330, 131, 20))
          self.label_2.setStyleSheet(_fromUtf8("color: rgb(255, 255, 
  255);\n"
  "font: 63 italic 10pt \"URW Chancery L\";"))
          self.label_2.setObjectName(_fromUtf8("label_2"))
  
          self.retranslateUi(Form)
          QtCore.QMetaObject.connectSlotsByName(Form)
  
      def retranslateUi(self, Form):
          Form.setWindowTitle(_translate("Form", "Form", None))
          self.pushButton_2.setText(_translate("Form", "Sign In", None))
          self.pushButton.setText(_translate("Form", "Sign Up", None))
          self.label.setText(_translate("Form", "Welcome To Our Smart 
  Garage", None))
          self.label_2.setText(_translate("Form", "Power By AIET 
  Students", None))
  
  import iamge_rc
  
  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>
  
  <p>Code for 'Sign In Widget'</p>
  
  <pre><code>from PyQt4 import QtCore, QtGui
  import WelFrame
  
  try:
      _fromUtf8 = QtCore.QString.fromUtf8
  except AttributeError:
      def _fromUtf8(s):
          return s
  
  try:
      _encoding = QtGui.QApplication.UnicodeUTF8
      def _translate(context, text, disambig):
          return QtGui.QApplication.translate(context, text, disambig, _encoding)
  except AttributeError:
      def _translate(context, text, disambig):
          return QtGui.QApplication.translate(context, text, disambig)
  
  class Ui_Form(object):
      def Back(self):
          self.WelcomWindow = QtGui.QWidget()
          self.ui = WelFrame.Ui_Form()
          self.ui.setupUi(self.WelcomWindow)
          self.WelcomWindow .show()
          Form.close()
      def setupUi(self, Form):
          Form.setObjectName(_fromUtf8("Form"))
          Form.resize(500, 360)
          Form.setStyleSheet(_fromUtf8("background-image: url(:/img/Screenshot from 2017-09-20 17-37-17.png);"))
          self.gridLayout = QtGui.QGridLayout(Form)
          self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
          self.label = QtGui.QLabel(Form)
          self.label.setStyleSheet(_fromUtf8("color: rgb(255, 255, 255);\n"
  "font: 63 oblique 12pt \"URW Gothic L\";"))
          self.label.setObjectName(_fromUtf8("label"))
          self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
          self.lineEdit = QtGui.QLineEdit(Form)
          self.lineEdit.setObjectName(_fromUtf8("lineEdit"))
          self.gridLayout.addWidget(self.lineEdit, 0, 1, 1, 1)
          self.lineEdit_2 = QtGui.QLineEdit(Form)
          self.lineEdit_2.setObjectName(_fromUtf8("lineEdit_2"))
          self.gridLayout.addWidget(self.lineEdit_2, 1, 1, 1, 1)
          self.pushButton_2 = QtGui.QPushButton(Form)
          self.pushButton_2.setStyleSheet(_fromUtf8("color: rgb(255, 255, 255);\n"
  "font: 63 oblique 12pt \"URW Gothic L\";"))
          self.pushButton_2.setObjectName(_fromUtf8("pushButton_2"))
          self.pushButton_2.clicked.connect(self.Back)
          self.gridLayout.addWidget(self.pushButton_2, 2, 0, 1, 1)
          self.pushButton = QtGui.QPushButton(Form)
          self.pushButton.setStyleSheet(_fromUtf8("color: rgb(255, 255, 255);\n"
  "font: 63 oblique 12pt \"URW Gothic L\";"))
          self.pushButton.setObjectName(_fromUtf8("pushButton"))
          self.gridLayout.addWidget(self.pushButton, 2, 1, 1, 1)
          self.label_2 = QtGui.QLabel(Form)
          self.label_2.setStyleSheet(_fromUtf8("color: rgb(255, 255, 255);\n"
  "font: 63 oblique 12pt \"URW Gothic L\";"))
          self.label_2.setObjectName(_fromUtf8("label_2"))
          self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
  
          self.retranslateUi(Form)
          QtCore.QMetaObject.connectSlotsByName(Form)
  
      def retranslateUi(self, Form):
          Form.setWindowTitle(_translate("Form", "Form", None))
          self.label.setText(_translate("Form", "Enter User Name", None))
          self.pushButton_2.setText(_translate("Form", "Cancel", None))
          self.pushButton.setText(_translate("Form", "OK", None))
          self.label_2.setText(_translate("Form", "Enter Password", None))
  
  import iamge_rc
  
  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>
  
  <p>import SignIn -> code of SignIN</p>
  
  <p>import WelFrame-> code of Welcome Window</p>