Anzeige:
Ergebnis 1 bis 3 von 3

Thema: QTable wie richtig durchsuchen?

  1. #1
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255

    QTable wie richtig durchsuchen?

    Ich plane im Moment mit mit einem QLineEdit je nach Tasteneingabe(string länge) in einer Tabelle(QTable) zu suchen. Den Listener auf das LineEdit habe ich nun stehen jedoch stellt sich mir jetzt die Frage wie ich es am Ressourcen schohnensten anstelle die Tabelle auf Übereinstimmungen zu durchsuchen. Die LineEdit eingaben werden mit einem QString gesammelt.
    Im Moment sehe ich die Möglichkeit das ich bei jedem Tasten Druck eine Schleife auf die entsprechende Spalte des QTable setzte. das würde aber Bedeuteten das ich nach jedem Tastendruck in etwa 600 Zeilen durchlaufen muss das kommt mir jetzt etwas viel vor so das ich auch schon gedacht habe. Das ich beim erstellen der Tabelle die aus einem XML generiert eine QstringList ableite in dem ich nur die ersten 3 Buchstaben der einzelnen Spalten einfüge und dieses dann ducrhsuche. Mich würde aber auch Interessieren ob es hier auch noch andere Möglichkeiten unter KDE/QT3 gibt dies auf eine wesentlich saubere Methode zu lösen.
    gruss undefined

  2. #2
    Registrierter Benutzer
    Registriert seit
    16.09.2002
    Beiträge
    73
    Das kommt darauf an, was du suchst:
    1. Zelle ist gleich xyz oder
    2. Zelle beginnt mit xyz oder
    3. Zelle enthält xyz

    zu 1: Einfach ne Hashtabelle nehmen. Das wäre dann QDict. Wenn gut gewählt findest Du einen Eintrag mit nur einem Vergleich.
    zu 2: Zellen vorher sortieren (ggfs. in separater Datenstruktur) und dann mit binärer Suche. Bei 512 Zellen wären damit höchstens 9 Vergleiche nötig.
    zu 3: Da habe ich auch keine bessere Idee als alles linear zu durchsuchen.

  3. #3
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    Danke, ich werde mir mal die QDict ansehen. Im Moment habe ich mich für die Schleifen Version entschieden. Ich Lese oder Suche immer nur nach cols=Schleifenanzahl row=0. Ist aber jetzt schon abzusehen das es bei Leuten mit leistungschwachen Rechnern Zeit in Anspruch nehmen wird. Ich werde beide Versionen heute Abend mal auf meinen 350 MHz Rechner testen.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •