Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. German
  4. editingFinished()

editingFinished()

Scheduled Pinned Locked Moved Unsolved German
5 Posts 3 Posters 708 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    M.W43
    wrote on last edited by
    #1

    Benutze EditingFinished() um mit der Maus auf ein Eingabefeld ein Dialog zu ändern, versuche gerade einen Parameter mit zu übergeben, nach dem anhängen des Parameter verliere ist den Focus.
    Ist es nicht möglich eine Parameter mit zu übergeben?

    void KundeEinzel::on_lineEditVorname_editingFinished(int line_size_1)
    {
    bool beendet = false;
    
    QString vorname =("Vorname");
        QString zahl1 = ui->lineEditVorname->text();
            //int line_size = zahl1.length();
    
            if(zahl1.isEmpty()){
                beendet = true;
             }else{
                beendet = false;
                }
                check(vorname,beendet);
    }
    
    Pl45m4P 1 Reply Last reply
    0
    • AxelViennaA Offline
      AxelViennaA Offline
      AxelVienna
      wrote on last edited by AxelVienna
      #2

      Ich nehme an, Du sprichst von einem QLineEdit Objekt.
      Das Signal editingFinished() übergibt keine Parameter.
      Du kannst statt dessen textEdited(const QString &) verwenden. Da bekommst Du den ganzen Text übergeben und kannst Dir mit size() dessen Größe auslesen.

      Ich verstehe Deinen Code und Deine Frage dennoch nicht ganz: Du liest den editierten QString ohnehin in die Varable zahl1. Deren Länge erhältst Du mit size() oder wie in Deinem Kommentar mit length() (die beiden Methoden sind ident). Wozu brauchst Du vom Signal dann überhaupt einen Parameter, dessen Wert Du auch so ermitteln kannst?

      C++ and Python walk into a bar. C++ reuses the first glass.

      1 Reply Last reply
      1
      • M M.W43

        Benutze EditingFinished() um mit der Maus auf ein Eingabefeld ein Dialog zu ändern, versuche gerade einen Parameter mit zu übergeben, nach dem anhängen des Parameter verliere ist den Focus.
        Ist es nicht möglich eine Parameter mit zu übergeben?

        void KundeEinzel::on_lineEditVorname_editingFinished(int line_size_1)
        {
        bool beendet = false;
        
        QString vorname =("Vorname");
            QString zahl1 = ui->lineEditVorname->text();
                //int line_size = zahl1.length();
        
                if(zahl1.isEmpty()){
                    beendet = true;
                 }else{
                    beendet = false;
                    }
                    check(vorname,beendet);
        }
        
        Pl45m4P Offline
        Pl45m4P Offline
        Pl45m4
        wrote on last edited by Pl45m4
        #3

        @M-W43

        Alternativ geht auch eine Lambda-Connection wo du dann den Code direkt in die Connection schreibst und den line_size_1 Wert direkt berechnen und nutzen kannst, ohne ihn über das Signal an einen Slot senden zu müssen, der den Parameter eh nicht akzeptiert bzw. verarbeiten kann.

        connect(lineEdit, &QLineEdit::editingFinished, this, [=] (/* opt. Varis*/) {
        
        // Hier den Wert berechnen
        // und danach alles weitere tun, was in dem Slot steht.
        
        });
        

        If debugging is the process of removing software bugs, then programming must be the process of putting them in.

        ~E. W. Dijkstra

        1 Reply Last reply
        1
        • M Offline
          M Offline
          M.W43
          wrote on last edited by
          #4

          Habe mir einen Datensatz angelegt, und hole mir über den mapper die Daten aus dem Datensatz.
          Jetzt liegt im Eingabefeld lineEditVorname der Vorname aus dem Datensatz. Über die QString variable zahl1 möchte ich die Eingabe (ändern oder löschen), dann zurück speichern über den mapper in den Datensatz.
          Ich bekomme es aber nur mit wenn das Eingabefeld leer ist nicht wenn es geändert wird oder schon geändert ist Jetzt wollte ich beide QStrings vergleichen aus den mapper und aus meine Eingabe.

          Pl45m4P 1 Reply Last reply
          0
          • M M.W43

            Habe mir einen Datensatz angelegt, und hole mir über den mapper die Daten aus dem Datensatz.
            Jetzt liegt im Eingabefeld lineEditVorname der Vorname aus dem Datensatz. Über die QString variable zahl1 möchte ich die Eingabe (ändern oder löschen), dann zurück speichern über den mapper in den Datensatz.
            Ich bekomme es aber nur mit wenn das Eingabefeld leer ist nicht wenn es geändert wird oder schon geändert ist Jetzt wollte ich beide QStrings vergleichen aus den mapper und aus meine Eingabe.

            Pl45m4P Offline
            Pl45m4P Offline
            Pl45m4
            wrote on last edited by Pl45m4
            #5

            @M-W43 said in editingFinished():

            Über die QString variable zahl1 möchte ich die Eingabe (ändern oder löschen), dann zurück speichern über den mapper in den Datensatz.

            Dass man eine String-Variable zahl1 nennt, sorgt allein schon für Verwirrung... :)

            @M-W43 said in editingFinished():

            Ich bekomme es aber nur mit wenn das Eingabefeld leer ist nicht wenn es geändert wird oder schon geändert ist Jetzt wollte ich beide QStrings vergleichen aus den mapper und aus meine Eingabe.

            Man könnte das Signal (textChanged) nutzen nachdem der Text aus der Datenbank eingetragen wurde um zu prüfen ob was ändert wurde.
            Jede weitere Änderung (egal ob im Code oder über die GUI) löst das Signal aus (im Gegensatz zu textEdited() was nur über die GUI funktioniert).
            Dort könnte man dann sowas wie ein "dirty flag" setzen und dann weiß man dass der Text im LineEdit geändert wurde und neu in die Datenbank zurückgeschrieben werden muss.

            • https://doc.qt.io/qt-5/qlineedit.html#textChanged

            Gibt aber bestimmt noch mehr Möglichkeiten.


            If debugging is the process of removing software bugs, then programming must be the process of putting them in.

            ~E. W. Dijkstra

            1 Reply Last reply
            1

            • Login

            • Login or register to search.
            • First post
              Last post
            0
            • Categories
            • Recent
            • Tags
            • Popular
            • Users
            • Groups
            • Search
            • Get Qt Extensions
            • Unsolved