2016-05-17 18 views
-1

Wie könnte String (Text) von QlineEdit erhalten? Ich versuchte es so.Wie könnte String (Text) von QlineEdit dynamisch abgerufen werden?

myArea.getList() Funktion ist String-Wert erhalten und mit String-Wert überprüfen Datenbank und Rückgabeliste

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 

Eingabetext in ein, dann ein Änderungen ... -> lesen a -> Daten überprüfen, indem Sie a -> b's Daten erstellt -> Eingabe Text in b ... -> lesen b -> Daten prüfen nach b

Zuerst weiß ich nicht, wie man (Return) QLineEdit() Wert ... bekommen Drucken QLineEdit Text funktioniert, aber zurückgeben String .. ist so schwierig ..

Hilf mir ...

+0

Ich verstehe nicht.Was ist "my_edit" und "myArea"? Sie müssen nur den Wert in Textchanged-Funktion zurückgeben. 'def textchanged (self, text): return text' –

Antwort

2

Hier ist ein vollständiges Beispiel, wie Sie den Wert von self.a und self.b erhalten und die Werte zueinander setzen. Vielleicht hilft dir das auch tutorial.

Sie können den Rückgabewert der Methoden self.textchangedA oder self.textchangedB nicht verwenden, daher müssen Sie die Membervariablen der Klasse verwenden.

#!/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() 
+0

Danke .. Aber wie könnte ich den Rückgabewert verwenden ?? Es verwendet nur nur 'Werte' drucken nicht 'Werte' zu bekommen .. Also ich meine, wenn ich neue self.aReturn = self.textcahngedA hinzufügen -> self.aReturn drucken -> ausdrucken Keine/Wenn ich selbst.aRetunr = self.a .textChanged.connect (self.textchangedA) -> nur gebundene Methode Speicheradresse priting out –

+0

Ich wirklich Super Danke! Aber .. ich weiß nicht, wie man den String-Wert von self.a unabhängig von der textchangedA-Methode erhält ... Ich meine, extrahiere den String-Wert von QLineEdit und verwende diesen Wert als unabhängigen Wert in der Klasse. Nicht nur –

+0

mit 'self.a.text()' ausdrucken, Sie erhalten den String-Wert und mit 'self.b.text()' erhalten Sie den String-Wert von b. Ist es das was du meinst? – salomonderossi