Boa tarde.
 
	 
 
	Estou com um problema aqui:
 
	Estou usado o QT4 DESIGNER para desenhar dois formulários e, depois utilizando um código em python, através do Formulário 1 chamar o formulário 2.
 
	Quando utilizo o comando abaixo, funciona perfeitamente, mas esse comando só serve para chamar através do Shell do Linux, o que faz com que meu programa, não seja portável para Mac Os X ou para Windows. Segue abaixo comando:
 
from subprocess import *
executar = call('python Bugio2.py',shell = True)
	Quero chamar o segundo FORM em MODAL, tal qual se faz em linguagens como o GAMBAS, VISUAL BASIC, LAZARUS ou DELPHI. 
	Assim evito erros que um usuário distraído poderia causar ao usar o meu programa. Abaixo anexos dos dois FORMs feitos em QT4 DESIGNER e o código do programa principal, o qual chama o segundo form.
 
	O programa se chama Bugio.py e tem os seguintes forms:
 
		Bugio.ui ---> Menu principal
	
	
		Bugio2.ui -> Segundo form
	
	Segue o código do primeiro programa, o qual chama o segundo.
 
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'Bugio.ui'
#
# Created by: PyQt4 UI code generator 4.11.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
from subprocess import *
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_Bugio(object):
    def setupUi(self, Bugio):
        Bugio.setObjectName(_fromUtf8("Bugio"))
        Bugio.resize(800, 600)
        self.centralwidget = QtGui.QWidget(Bugio)
        self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
        Bugio.setCentralWidget(self.centralwidget)
        self.menubar = QtGui.QMenuBar(Bugio)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 28))
        self.menubar.setObjectName(_fromUtf8("menubar"))
        self.menuArquivo = QtGui.QMenu(self.menubar)
        self.menuArquivo.setObjectName(_fromUtf8("menuArquivo"))
        self.menuCadastros = QtGui.QMenu(self.menuArquivo)
        self.menuCadastros.setObjectName(_fromUtf8("menuCadastros"))
        self.menuAjuda = QtGui.QMenu(self.menubar)
        self.menuAjuda.setObjectName(_fromUtf8("menuAjuda"))
        Bugio.setMenuBar(self.menubar)
        self.statusbar = QtGui.QStatusBar(Bugio)
        self.statusbar.setObjectName(_fromUtf8("statusbar"))
        Bugio.setStatusBar(self.statusbar)
        self.actionEditar = QtGui.QAction(Bugio)
        self.actionEditar.setObjectName(_fromUtf8("actionEditar"))
        self.actionExcluir = QtGui.QAction(Bugio)
        self.actionExcluir.setObjectName(_fromUtf8("actionExcluir"))
        self.actionSair = QtGui.QAction(Bugio)
        self.actionSair.setObjectName(_fromUtf8("actionSair"))
        self.Cad_Contatos = QtGui.QAction(Bugio)
        self.Cad_Contatos.setObjectName(_fromUtf8("Cad_Contatos"))
        self.Cad_Produtos = QtGui.QAction(Bugio)
        self.Cad_Produtos.setObjectName(_fromUtf8("Cad_Produtos"))
        self.Cad_Fornecedores = QtGui.QAction(Bugio)
        self.Cad_Fornecedores.setObjectName(_fromUtf8("Cad_Fornecedores"))
        self.Mn_Sobre = QtGui.QAction(Bugio)
        self.Mn_Sobre.setObjectName(_fromUtf8("Mn_Sobre"))
        self.menuCadastros.addAction(self.Cad_Contatos)
        self.menuCadastros.addAction(self.Cad_Produtos)
        self.menuCadastros.addAction(self.Cad_Fornecedores)
        self.menuArquivo.addAction(self.menuCadastros.menuAction())
        self.menuArquivo.addAction(self.actionEditar)
        self.menuArquivo.addAction(self.actionExcluir)
        self.menuArquivo.addSeparator()
        self.menuArquivo.addAction(self.actionSair)
        self.menuAjuda.addAction(self.Mn_Sobre)
        self.menubar.addAction(self.menuArquivo.menuAction())
        self.menubar.addAction(self.menuAjuda.menuAction())
        self.retranslateUi(Bugio)
        # Chamada da função pelo menu --> self.Função
        QtCore.QObject.connect(self.Cad_Contatos, QtCore.SIGNAL(_fromUtf8("activated()")), self.Cadastro)
        QtCore.QMetaObject.connectSlotsByName(Bugio)
    def retranslateUi(self, Bugio):
        Bugio.setWindowTitle(_translate("Bugio", "BUGIO 1.0.0", None))
        self.menuArquivo.setTitle(_translate("Bugio", "Arquivo", None))
        self.menuCadastros.setTitle(_translate("Bugio", "Cadastros", None))
        self.menuAjuda.setTitle(_translate("Bugio", "Ajuda", None))
        self.actionEditar.setText(_translate("Bugio", "Editar", None))
        self.actionExcluir.setText(_translate("Bugio", "Excluir", None))
        self.actionSair.setText(_translate("Bugio", "Sair", None))
        self.Cad_Contatos.setText(_translate("Bugio", "Contatos", None))
        self.Cad_Produtos.setText(_translate("Bugio", "Produtos", None))
        self.Cad_Fornecedores.setText(_translate("Bugio", "Fornecedores", None))
        self.Mn_Sobre.setText(_translate("Bugio", "Sobre", None))
    def Cadastro(self):
        # AQUI É CHAMADO O SEGUNDO PRROGRAMA
        executar = call('python Bugio2.py',shell = True)
        Bugio2.show()
        print('Sera que deu certo?')
        return
if __name__ == "__main__":
    import sys
    app = QtGui.QApplication(sys.argv)
    Bugio = QtGui.QMainWindow()
    ui = Ui_Bugio()
    ui.setupUi(Bugio)
    Bugio.show()
    sys.exit(app.exec_())
	 
 
	OBRIGADO!