python: le Processus est terminé avec le code de sortie 1 lors de l'utilisation de PyCharm et PyQt5
J'ai trois Python(3.4.3) les scripts. L'un d'eux est pour le contrôle de l' .l'interface utilisateur du fichier généré par PyQt5. Quand je lance l'interface graphique du programme, il accepte toutes les données et tout, et quand j'appuie sur le bouton OK sur un InputDialog la fenêtre se ferme et la console affiche.
Process finished with exit code 1
Lorsque j'exécute le même code sur Python IDLE, il montre:
<<<<<<RESTART>>>>>>
Cela n'a jamais happenned lorsque j'ai utilisé ce même Python(3.4.3 ou 2.7) code sur Visual Studio. Quelle pourrait être la raison?
Voici le code du fichier python contrôle de l' .fichier d'interface utilisateur.
import sys
from PyQt5 import QtCore, QtGui, uic, QtWidgets
from Email import encrypt_email
from Email import decrypt_email
from Email import newuser
qtCreatorFile = "rsegui.ui" # Enter file here.
Ui_MainWindow, QtBaseClass = uic.loadUiType(qtCreatorFile)
class MyApp(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
QtWidgets.QMainWindow.__init__(self)
Ui_MainWindow.__init__(self)
self.setupUi(self)
user, ok = QtWidgets.QInputDialog.getText(self, 'New User',
'Are you a new user?')
user=str(user)
if user in "YESYesyesYy":
email, ok = QtWidgets.QInputDialog.getText(self, 'New User',
'Enter Your Email ID:')
email1=str(email)
self.sender.setText(email)
newuser(email1)
self.encrypt_and_send.clicked.connect(self.EncryptEmail)
self.decrypt.clicked.connect(self.DecryptEmail)
self.clear.clicked.connect(self.ClearEncrypt)
self.clear_2.clicked.connect(self.ClearDecrypt)
self.sender.setPlaceholderText("Your Email ID")
self.receiver.setPlaceholderText("Receivers, Separate them by ';'")
self.subject.setPlaceholderText("Enter Subject")
self.message.setPlaceholderText("Enter Message")
self.sender_2.setPlaceholderText("Your Email ID")
self.message_2.setPlaceholderText("Encrypted Text")
def EncryptEmail(self):
sender = str(self.sender.text())
receiver = str(self.receiver.text())
receivers = receiver.split(';')
subject = str(self.subject.text())
message = str(self.message.text())
password, ok = QtWidgets.QInputDialog.getText(self, 'Password',
'Enter your password:',QtWidgets.QLineEdit.Password)
encrypt_email(sender,receivers,subject,message,password)
def DecryptEmail(self):
email = str(self.sender_2.text())
message = str(self.message_2.text())
self.decrypted.setText(decrypt_email(email,message))
def ClearDecrypt(self):
self.sender_2.clear()
self.message_2.clear()
def ClearEncrypt(self):
self.sender.clear()
self.message.clear()
self.receiver.clear()
self.subject.clear()
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
window = MyApp()
window.show()
sys.exit(app.exec_())
Très bonne question. Puisqu'il traite avec le code, il pourrait, je pense, être une bonne idée de fournir certains, ne pensez-vous pas? En outre, le traceback serait très utile aussi!
J'ai mis à jour la question avec le code. Pas de trace a été imprimé à la console.
une idée de pourquoi ce qui se passe?
Eh bien, vous sortez avec ce code de retour
Si vous supprimez tout ce qui concerne le module e-Mail, faut-il encore sortir comme ça? Aussi, pouvez-vous poster le .fichier d'interface utilisateur?
J'ai mis à jour la question avec le code. Pas de trace a été imprimé à la console.
une idée de pourquoi ce qui se passe?
Eh bien, vous sortez avec ce code de retour
app.exec_()
renvoie (dans votre cas, 1), alors je trace à partir de là. Sauf si vous pouvez poster un traceback, je n'ai pas la moindre idée non plus.Si vous supprimez tout ce qui concerne le module e-Mail, faut-il encore sortir comme ça? Aussi, pouvez-vous poster le .fichier d'interface utilisateur?
OriginalL'auteur daipayan | 2015-12-18
Vous devez vous connecter pour publier un commentaire.
J'ai traité avec le même problème, et la réponse est double:
Pour attraper les exceptions, vous avez besoin de remplacer le sys gestionnaire d'exception:
Puis dans l'exécution de votre code, de l'envelopper dans un try/catch.
Je ne suis pas sûr si c'est nécessaire, mais il est comment mon de mise en œuvre terminée. Essayez de vous en passer, il pourrait ne pas être nécessaire.
OriginalL'auteur IronSean