Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. German
  4. "int" Daten aus der Containerklasse QSet in ein ListWidget ausgeben
Qt 6.11 is out! See what's new in the release blog

"int" Daten aus der Containerklasse QSet in ein ListWidget ausgeben

Scheduled Pinned Locked Moved Solved German
15 Posts 3 Posters 8.1k Views 3 Watching
  • 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.
  • S steevie

    Hallo,
    danke aber das hat noc h nicht geholfen.
    Ich habe einen Container QSet mit dem Namen "ohneDoppelt".
    Den kann ich mir über qDebug() anzeigen lassen:

    for (int i = 0; i < vektorGroesse; i++)
        {
        ohneDoppelt->insert(vektorListe->at(i));
        qDebug() << "QSetliste Eingabe" << vektorListe->at(i);
        }
        int laengeQSet = ohneDoppelt->count();
    
        qDebug() << "Ausgabe der Liste ohne Doppelt " << ohneDoppelt->values();
    

    Aber wenn ich diese Liste in meine Ausgabe-QListWidget eintragen will, funktioniert das nicht.
    Mein Versuch sieht momentan so aus:

    ui->listWidgetAusgabe->addItems(ohneDoppelt);
    

    das ist jetzt die einfache Version.
    Habe es schon mit for-Schleife versucht und auch mit QString::number und etliche andere Konstellationen.
    Habe auch schon versucht eine QString-Liste dazwischen zu schalten, aber auch in die Liste konnte ich nichts eintragen. immer der selbe Fehler:

    cpp:129: Fehler:cannot convert 'QList<int>' to 'QList<int>*' in assignment

    Gibt es noch Vorschläge?

    Danke für Eure Mühe

    Steevie

    [edit:koahnig, code tags added]

    K Offline
    K Offline
    koahnig
    wrote on last edited by
    #5

    @steevie

    Dein Post lässt einige Frage offen.

    @steevie said in "int" Daten aus der Containerklasse QSet in ein ListWidget ausgeben:

    ui->listWidgetAusgabe->addItems(ohneDoppelt);
    

    Wenn listWidgetAusgabe ein QListWidget ist, dann musst du in addItems eine QStringList verwenden. QStringList ist defacto QList<QString> und nicht QList<int> und auch nicht QList<int>* . Damit passt die Fehlermeldung unten eigentlich nicht zu deinen Angaben.

    @steevie said in "int" Daten aus der Containerklasse QSet in ein ListWidget ausgeben:

    cpp:129: Fehler:cannot convert 'QList<int>' to 'QList<int>*' in assignment

    Falls ohneDoppelt eine QList<int> ist, dann kannst du zum Beispiel so diese in eine QStringList umwandeln.

    QStringList strList;
    for ( QList<int>::const_iterator it = ohneDoppelt.begin(); it != ohneDoppelt.end(); ++it )
    {
           strList << QString().setNum ( *it );
    }
    ui->listWidgetAusgabe->addItems(strList);
    
    

    Note: Quellcode ist nicht getestet.

    Vote the answer(s) that helped you to solve your issue(s)

    1 Reply Last reply
    0
    • S Offline
      S Offline
      steevie
      wrote on last edited by
      #6

      HAllo,
      "ohneDoppelt" ist ein Container von "QSet" aus der STL der mit "int-Werten" gefüllt ist.
      Diesen Container habe ich genommen um alle doppelten Einträge herauszufiltern.
      Ich kann mir auch die "int"-Werte über qDebug() beim Ausführen des Programms anzeigen lassen.
      Bisher ist es mir jedoch nicht gelungen die "int-Werte" aus dem Container QSet in QString umzuwandeln, damit diese Werte im QListWidget ausgegeben werden können.

      Steevie

      K 1 Reply Last reply
      0
      • S steevie

        HAllo,
        "ohneDoppelt" ist ein Container von "QSet" aus der STL der mit "int-Werten" gefüllt ist.
        Diesen Container habe ich genommen um alle doppelten Einträge herauszufiltern.
        Ich kann mir auch die "int"-Werte über qDebug() beim Ausführen des Programms anzeigen lassen.
        Bisher ist es mir jedoch nicht gelungen die "int-Werte" aus dem Container QSet in QString umzuwandeln, damit diese Werte im QListWidget ausgegeben werden können.

        Steevie

        K Offline
        K Offline
        koahnig
        wrote on last edited by
        #7

        @steevie

        Versuche einfach QList in dem Beispiel durch QSet zu ersetzen. Sollte eigentlich auch funktionieren.

        QSet ist aber nicht STL! Hast du eine Konvertierung gemacht?

        Vote the answer(s) that helped you to solve your issue(s)

        1 Reply Last reply
        0
        • S Offline
          S Offline
          steevie
          wrote on last edited by
          #8

          Bisher hat es trotzdem noch nicht geklappt, aber ich versuch es morgen weiter.

          In meinem Lehrbuch steht, dass die Container- Klasse"QSet" Teil der "Standard-Template-Library" (also STL) ist.
          So wie "Vector" oder "Queue".
          Oder ist das nicht richtig?

          Danke für die Hilfe

          Steevie

          1 Reply Last reply
          0
          • S Offline
            S Offline
            steevie
            wrote on last edited by
            #9

            HAllo,

            ja jetzt kann ich Daten in das ListWidget ausgeben. Das hat mir sehr geholfen.
            Habe aber einen Denkfehler in meinem Programm.
            Zuerst habe ich in einem Vektor die Daten aufsteigend sortiert und dann an QSet übergeben, um die doppelten Einträge herauszufiltern.

            Anscheind schmeisst QSet die Daten durcheinander, denn die Reihenfolge ist jetzt scheinbar willkürlich.
            Aber ich denke, das bekomme ich jetzt hin.

            Danke nochmal.

            Steevie

            S 1 Reply Last reply
            0
            • S steevie

              HAllo,

              ja jetzt kann ich Daten in das ListWidget ausgeben. Das hat mir sehr geholfen.
              Habe aber einen Denkfehler in meinem Programm.
              Zuerst habe ich in einem Vektor die Daten aufsteigend sortiert und dann an QSet übergeben, um die doppelten Einträge herauszufiltern.

              Anscheind schmeisst QSet die Daten durcheinander, denn die Reihenfolge ist jetzt scheinbar willkürlich.
              Aber ich denke, das bekomme ich jetzt hin.

              Danke nochmal.

              Steevie

              S Offline
              S Offline
              steevie
              wrote on last edited by
              #10

              @steevie said in "int" Daten aus der Containerklasse QSet in ein ListWidget ausgeben:

              HAllo,

              ja jetzt kann ich Daten in das ListWidget ausgeben. Das hat mir sehr geholfen.
              Habe aber einen Denkfehler in meinem Programm.
              Zuerst habe ich in einem Vektor die Daten aufsteigend sortiert und dann an QSet übergeben, um die doppelten Einträge herauszufiltern.

              Anscheind schmeisst QSet die Daten durcheinander, denn die Reihenfolge ist jetzt scheinbar willkürlich.
              Aber ich denke, das bekomme ich jetzt hin.

              Danke nochmal.

              Steevie

              K 1 Reply Last reply
              0
              • S steevie

                @steevie said in "int" Daten aus der Containerklasse QSet in ein ListWidget ausgeben:

                HAllo,

                ja jetzt kann ich Daten in das ListWidget ausgeben. Das hat mir sehr geholfen.
                Habe aber einen Denkfehler in meinem Programm.
                Zuerst habe ich in einem Vektor die Daten aufsteigend sortiert und dann an QSet übergeben, um die doppelten Einträge herauszufiltern.

                Anscheind schmeisst QSet die Daten durcheinander, denn die Reihenfolge ist jetzt scheinbar willkürlich.
                Aber ich denke, das bekomme ich jetzt hin.

                Danke nochmal.

                Steevie

                K Offline
                K Offline
                koahnig
                wrote on last edited by
                #11

                @steevie

                Du brauchst den Vector zum Sortieren gar nicht.
                QStringList::sort erlaubt dir das Sortieren. QStringList::removeDuplicates erlaubt dir die doppelten Werte zu entfernen. Ich denke damit kannst du dir einige Verrenkungen sparen.

                QSet legt tatsächlich nicht auf die Reihenfolge Wert.
                QSet<T> is one of Qt's generic container classes. It stores values in an unspecified order and provides very fast lookup of the values. Internally, QSet<T> is implemented as a QHash.

                Ich verwende QSet nicht und war einfach von der stl Funktionalität ausgegangen.

                Vote the answer(s) that helped you to solve your issue(s)

                1 Reply Last reply
                0
                • S Offline
                  S Offline
                  steevie
                  wrote on last edited by
                  #12

                  Danke für die Tips,

                  aber bei uns haben wir gerade die Containerklassen behandelt, dehalb wollte ich es damit auch programmieren.
                  Jetzt jhabe ich es geschafft und das Programm ist fertig.
                  Wenn ich so etwas noch mal mache, werde ich es wahrscheinlich über QStrinList:: machen :-)
                  Danke nochmal.

                  Steevie

                  S 1 Reply Last reply
                  0
                  • S steevie

                    Danke für die Tips,

                    aber bei uns haben wir gerade die Containerklassen behandelt, dehalb wollte ich es damit auch programmieren.
                    Jetzt jhabe ich es geschafft und das Programm ist fertig.
                    Wenn ich so etwas noch mal mache, werde ich es wahrscheinlich über QStrinList:: machen :-)
                    Danke nochmal.

                    Steevie

                    S Offline
                    S Offline
                    steevie
                    wrote on last edited by
                    #13

                    @steevie said in "int" Daten aus der Containerklasse QSet in ein ListWidget ausgeben:

                    Danke für die Tips,

                    aber bei uns haben wir gerade die Containerklassen behandelt, dehalb wollte ich es damit auch programmieren.
                    Jetzt habe ich es geschafft und das Programm ist fertig.
                    Wenn ich so etwas noch mal mache, werde ich es wahrscheinlich über QStrinList:: machen :-)
                    Danke nochmal.

                    Steevie

                    S 1 Reply Last reply
                    0
                    • S steevie

                      @steevie said in "int" Daten aus der Containerklasse QSet in ein ListWidget ausgeben:

                      Danke für die Tips,

                      aber bei uns haben wir gerade die Containerklassen behandelt, dehalb wollte ich es damit auch programmieren.
                      Jetzt habe ich es geschafft und das Programm ist fertig.
                      Wenn ich so etwas noch mal mache, werde ich es wahrscheinlich über QStrinList:: machen :-)
                      Danke nochmal.

                      Steevie

                      S Offline
                      S Offline
                      steevie
                      wrote on last edited by
                      #14

                      @steevie said in "int" Daten aus der Containerklasse QSet in ein ListWidget ausgeben:

                      @steevie said in "int" Daten aus der Containerklasse QSet in ein ListWidget ausgeben:

                      Danke für die Tips,

                      aber bei uns haben wir gerade die Containerklassen behandelt, dehalb wollte ich es damit auch programmieren.
                      Jetzt habe ich es geschafft und das Programm ist fertig.
                      Wenn ich so etwas noch mal mache, werde ich es wahrscheinlich über QStringList:: machen :-)
                      Danke nochmal.

                      Steevie

                      ? 1 Reply Last reply
                      0
                      • S steevie

                        @steevie said in "int" Daten aus der Containerklasse QSet in ein ListWidget ausgeben:

                        @steevie said in "int" Daten aus der Containerklasse QSet in ein ListWidget ausgeben:

                        Danke für die Tips,

                        aber bei uns haben wir gerade die Containerklassen behandelt, dehalb wollte ich es damit auch programmieren.
                        Jetzt habe ich es geschafft und das Programm ist fertig.
                        Wenn ich so etwas noch mal mache, werde ich es wahrscheinlich über QStringList:: machen :-)
                        Danke nochmal.

                        Steevie

                        ? Offline
                        ? Offline
                        A Former User
                        wrote on last edited by
                        #15

                        @steevie Warum zitierst du dich ständig selbst? ^_^

                        1 Reply Last reply
                        0

                        • Login

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