J'essaie de faire ma première application python. Je veux faire un simple formulaire d'expéditeur d'email. Dans concepteur qt créer un dialog.ui, puis générer dialog.py de dialog.ui et écrire il fonctionnepython Qt4 Comment lier l'action sur le bouton cliquez sur
def SendEmail(self,efrom,eto,esubj,ebody):
msg = MIMEText(ebody.encode('UTF-8'),'html', 'UTF-8')
msg['Subject'] = esubj
msg['From'] = efrom
msg['To'] = eto
s = smtplib.SMTP()
s.connect("mail.driversoft.net", 25)
s.login("[email protected]", "1234567")
s.sendmail(efrom, [eto], msg.as_string())
s.quit()
et essayez connecter à l'emplacement
QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL("clicked()"), self.SendEmail("[email protected]", "[email protected]", "subject", "bodytext"))
lorsque je tente commencer cette application , je ne vois pas une forme, sur mon e-mail un message relancer, et dans la console
Traceback (most recent call last):
File "C:\Documents and Settings\a.ivanov\My Documents\Aptana Studio Workspace\test1\src\wxtest.py", line 61, in <module>
ui.setupUi(Dialog)
File "C:\Documents and Settings\a.ivanov\My Documents\Aptana Studio Workspace\test1\src\wxtest.py", line 33, in setupUi
QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL("clicked()"), self.SendEmail("[email protected]", "[email protected]", "subject", "bodytext"))
TypeError: arguments did not match any overloaded call:
QObject.connect(QObject, SIGNAL(), QObject, SLOT(), Qt.ConnectionType=Qt.AutoConnection): argument 3 has unexpected type 'NoneType'
QObject.connect(QObject, SIGNAL(), callable, Qt.ConnectionType=Qt.AutoConnection): argument 3 has unexpected type 'NoneType'
QObject.connect(QObject, SIGNAL(), SLOT(), Qt.ConnectionType=Qt.AutoConnection): argument 2 has unexpected type 'bytes'
Comment puis-je faire une forme i wich j'ai écrit sujet et le texte puis appuyez sur le bouton Envoyer et recevoir un message par email? Merci!
code complet
from PyQt4 import QtCore, QtGui
import smtplib
from email.mime.text import MIMEText
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(400, 330)
self.textEdit = QtGui.QTextEdit(Dialog)
self.textEdit.setGeometry(QtCore.QRect(10, 70, 381, 221))
self.textEdit.setObjectName("textEdit")
self.subjEdit = QtGui.QLineEdit(Dialog)
self.subjEdit.setGeometry(QtCore.QRect(10, 30, 371, 20))
self.subjEdit.setObjectName("subjEdit")
self.pushButton = QtGui.QPushButton(Dialog)
self.pushButton.setGeometry(QtCore.QRect(100, 300, 75, 23))
self.pushButton.setObjectName("pushButton")
self.pushButton_2 = QtGui.QPushButton(Dialog)
self.pushButton_2.setGeometry(QtCore.QRect(210, 300, 75, 23))
self.pushButton_2.setObjectName("pushButton_2")
self.label = QtGui.QLabel(Dialog)
self.label.setGeometry(QtCore.QRect(10, 10, 46, 13))
self.label.setObjectName("label")
self.label_2 = QtGui.QLabel(Dialog)
self.label_2.setGeometry(QtCore.QRect(11, 53, 46, 13))
self.label_2.setObjectName("label_2")
self.retranslateUi(Dialog)
QtCore.QObject.connect(self.pushButton_2, QtCore.SIGNAL("clicked()"), Dialog.close)
QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL("clicked()"), self.SendEmail("[email protected]", "[email protected]", "subject", "bodytext"))
QtCore.QMetaObject.connectSlotsByName(Dialog)
#this is my function
def SendEmail(self,efrom,eto,esubj,ebody):
msg = MIMEText(ebody.encode('UTF-8'),'html', 'UTF-8')
msg['Subject'] = esubj
msg['From'] = efrom
msg['To'] = eto
s = smtplib.SMTP()
s.connect("mail.driversoft.net", 25)
s.login("[email protected]", "1234567")
s.sendmail(efrom, [eto], msg.as_string())
s.quit()
#print("done")
def retranslateUi(self, Dialog):
Dialog.setWindowTitle(QtGui.QApplication.translate("Dialog", "Dialog", None, QtGui.QApplication.UnicodeUTF8))
self.pushButton.setText(QtGui.QApplication.translate("Dialog", "Send", None, QtGui.QApplication.UnicodeUTF8))
self.pushButton_2.setText(QtGui.QApplication.translate("Dialog", "Close", None, QtGui.QApplication.UnicodeUTF8))
self.label.setText(QtGui.QApplication.translate("Dialog", "Subject", None, QtGui.QApplication.UnicodeUTF8))
self.label_2.setText(QtGui.QApplication.translate("Dialog", "Email text", None, QtGui.QApplication.UnicodeUTF8))
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
Dialog = QtGui.QDialog()
ui = Ui_Dialog()
ui.setupUi(Dialog)
Dialog.show()
sys.exit(app.exec_())
merci beaucoup! maintenant ça marche bien! – driver