QTableView geeignet?



  • Hallo, ich habe einen Datentyp, der ein Dictionary hat
    ich mach mal ein Beispiel (stark Pseudolastig) mit 2 Instanzen:

    class A
    {
      dict = {};
    }
    
    A x;
    x["Name"] = "Peter";
    x["Alter"] = "37";
    x["Adresse"] = "Irgednwo 12"
    
    A y;
    A["Name"] = "Alexandra"
    A["Alter"] = "35"
    A["Geburtsort"]  = "Himmel-Hospital"
    

    Wichtig ist, dass die Keys der Dicts nicht gleich sein müssen.
    Nun hätte ich das gerne in einer Tabelle angezeigt, wobei die Anzahl der Spalten einfach die Anzahl der verschiedenen Keys sein soll. Nicht vorhandene bekommen ""

    | Name     | Alter |   Adresse  |   Geburtsort     |
    ---------------------------------------------------|
    | Peter    |   37  |Irgendwo 12 |       ""         |
    |Alexandra |   35  |    ""      | Himmel-Hospital  |
    

    Ich möchte dass beim Sortieren zB die Elemente zusammenhängend bleiben.
    Eine alphabetische Sortierung nach Namen soll also nicht die 37-jährige Alexandra wohnhaft Irgendwo 12 ergeben.

    Nun frage ich mich wie ich das in QT am besten visualisiere.
    Soweit ich die TableView-Beispiele gesehen habe, waren alle Zellen voneinander unabhängig, was ich hier nicht haben möchte, eine Zeile gehört zusammen.
    List.View hat aber nicht das schöne Tabellenartige das ich gerne hätte.
    Kann man das dennoch irgendwie? (bitte erläutern wie) machen?

    Ich habe auch nichts besonders schönes zu MVC gelesen, falls das hier hilfreich wäre, im Buch von Jürgen Wolf ist das auf 3 Seiten minimal angedeutet, dass Daten und Modell getrennt sind, aber naja egal...
    Ich hoffe mir kann geholfen werden 🙂



  • Das besagte Buch von Jürgen Wolf besitze ich auch (hoffentlich werde ich hier im Forum deswegen nicht geschlagen 😉 )
    Ich denke, dass das beste für dein Problem ein QTreeWidget ist. Damit hast du keine nervigen Zeilenlinien. Die Spalten gehören jeweils thematisch zusammen und bieten viele Möglichkeiten. Am genialsten finde ich, dass man die QTreeWidgetItems mit einem echten Widget zupflastern kann-> du kannst also in die letzte Spalte ein Button einfügen, dass deinen Eintrag rauslöscht...


Log in to reply