Faire une action quand le QLineEdit texte est modifié (par programmation)

J'ai écrit l'extrait de code suivant avec un QLineEdit qui peut être modifié en appuyant sur le bouton "Ajouter du Texte".

import sys
import os
from PyQt4 import QtGui
from PyQt4 import *

class SmallGUI(QtGui.QMainWindow):
    def __init__(self):
        super(SmallGUI,self).__init__()
        self.initUI()

    def initUI(self):
        self.setGeometry(300,300,300,300)
        self.setWindowTitle('Sample')

        #One input
        self.MyInput = QtGui.QLineEdit(self)
        self.MyInput.setGeometry(88,25,110,20)
        ###############

        QtCore.QObject.connect(self.MyInput,QtCore.SIGNAL("textChanged(bool)"),self.doSomething)

        #Add Text
        self.MyButton = QtGui.QPushButton(self)
        self.MyButton.setGeometry(QtCore.QRect(88,65,110,20))
        self.MyButton.setText('Add Text')
        ###############

        QtCore.QObject.connect(self.MyButton,QtCore.SIGNAL("clicked(bool)"),self.addText)

        self.show()

    def addText(self):
        self.MyInput.setText('write something')

    def doSomething(self):
        print "I'm doing something"

def main():
    app = QtGui.QApplication(sys.argv)
    sampleForm = SmallGUI()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

Ce que je voudrais faire est d'exécuter une action lorsque le texte de la QLineEdit est modifiée par programmation, c'est à dire en cliquant sur le bouton "Ajouter un Texte", procédant de la manière suivante:

QtCore.QObject.connect(self.MyInput,QtCore.SIGNAL("textChanged(bool)"),self.doSomething)

La raison pour laquelle j'ai utilisé le signal "textChanged" est liée à ce que la classe la documentation dit, c'est "ce signal est également émis lorsque le texte est modifié par programmation, par exemple, en appelant setText()."

Toutefois, cela ne fonctionne pas à cause de l'impression instruction n'est pas exécutée. Quelqu'un peut-il m'aider avec ça?

OriginalL'auteur Matteo NNZ | 2014-03-20