Search code examples
pythonpyqtpysideqlineedit

How to get text from a QLineEdit dynamically?


How could get String(Text) from QlineEdit?
I tried Like this. myArea.getList() function is get string value and check database with string value and return List

self.a = QLineEdit()
self.b = QlineEdit()
....

self.b = self.myArea.getList(str(self.a.textChanged.connect(self.textchanged)))

def textchanged(self, text):
    self.my_edit = text

Input text in a, then a changes. read a, check data by a, b's data created, Input text in b, read b, check data by b

First, I don't know how to get QLineEdit()'s value. print QLineEdit Text works but return String.


Solution

  • Here is a complete example how to get the value from self.a and self.b and set the values to each other. Maybe this tutorial helps you, too.

    You can not use the return value of the methods self.textchangedA or self.textchangedB, so you have to make use of the member variables of the class.

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    import logging
    import sys
    from PyQt4 import QtGui
    
    log = logging.getLogger(__name__)
    
    
    class MyWidget(QtGui.QWidget):
        def __init__(self, parent=None):
            super(MyWidget, self).__init__(parent)
    
            vbox = QtGui.QVBoxLayout(self)
            self.setLayout(vbox)
    
            self.a = QtGui.QLineEdit(self)
            self.b = QtGui.QLineEdit(self)
    
            vbox.addWidget(self.a)
            vbox.addWidget(self.b)
    
            self.a.textChanged.connect(self.textchangedA)
            self.b.textChanged.connect(self.textchangedB)
    
        def textchangedA(self, text):
            log.info("Text from a: %s", text)
            log.info("Text from b: %s", self.b.text())
            # do the processing
    
        def textchangedB(self, text):
            log.info("Text from b: %s", text)
            log.info("Text from a: %s", self.a.text())
    
    
    
    def test():
        app = QtGui.QApplication(sys.argv)
        w = MyWidget()
        w.show()
        sys.exit(app.exec_())
    
    if __name__ == '__main__':
        logging.basicConfig(level=logging.DEBUG)
        test()