예제 #1
0
    def addTextInput(self, question, callback, visible=True):
        text_input = QLineEdit()
        self.form.addRow(question, text_input)

        def texthandler():
            text = unicode(text_input.text())
            if visible:
                #don't alter what you can't see
                text = text.strip()
            text_input.setText(text)
            callback(text)
            if unicode(text) != text_input.default_value or len(text_input.default_value) == 0:
                self.signalModified()

        def setDefaultText(value):
            text_input.default_value = value
            text_input.setText(value)

        def maybemodified(qstring):
            if unicode(qstring) != text_input.default_value:
                self.signalModified()

        text_input.setDefaultText = setDefaultText
        text_input.default_value = ''

        self.connect(text_input, SIGNAL('editingFinished()'), texthandler)
#        self.connect(text_input, SIGNAL('textChanged(QString)'), maybemodified)

        if not visible:
            text_input.setEchoMode(QLineEdit.Password)
        return text_input