QSqlRelationalTableModel gestalten oder Tabelle selber bauen



  • Hallo zusammen,

    ich bin Anfänger in C++ und Qt, habe aber schon viel in PHP , MySQL, HTML und CSS gemacht.

    Das QSqlRelationalTableModel habe ich jetzt erfolgreich umsetzen können. Die StyleSheets im Grafik-Editor der .ui habe ich auch entdeckt. Aber dort sind die Möglichkeiten doch recht eingeschränkt.

    Nun meine Frage:
    Wir kann ich die bei QsqlRelationalTableModel entstehende Tabelle gestalten? Ich hätte gerne abwechselnd eingefärbte Zeilen.

    Und gleich noch eine Frage:
    Kann ich in diese Tabelle irgendwie Buttons einbauen? Ich würde gerne aus der Tabelle heraus mit den Werten, die dort angezeigt werden, rechnen, bzw. diese Werte zur weiteren Verarbeitung kopieren können.

    Hier noch eine 3. Frage:
    Kann ich in C++ bzw. XML eine Tabelle selber "bauen"?
    Über SQLite komme ich mit meiner Mini-Datenbank gut zurecht.
    Bisher habe ich das mit .php-Dateien und For-Schleifen gelöst. Die For-Schleife ist mir also vertraut, aber wie kann ich eine eigene Tabelle erstellen? (Und am liebsten noch in CSS gestalten...)

    Danke schon mal.
    Grüße Claudia



  • Deine Fragen haben nichts mit dem verwendeten Model sondern mit den Steuerelementen zu tun. Ich nehme mal an, du benutzt QTableView bzw. QTableWidget.
    Dort gibt es alternatingRowColors.

    Und bzgl. der Buttons schau mal in dieses englische Thema: Adding button to QTableview

    Aber was meinst du genau mit

    Kann ich in C++ bzw. XML eine Tabelle selber "bauen"?



  • Hallo Th69,

    vielen Dank für die schnelle Antwort. Die alternatingRowColors habe ich jetzt gefunden. Gibt es da noch andere Farben? Nur grau und weiß - das ist ein bisschen sparsam.

    Das Ding mit den Buttons werde ich mir mal ansehen.

    Zum Thema Tabelle, hier ein Beispiel aus PHP/HTML:

    //Anfang Tabelle aktueller Monat
    echo"<table>";
    echo"<tr>";
    //--------------------
    $max = $anz_tag +1;
    for ($i=1; $i<$max; $i++){
    if($i==$tag_heute){
    echo "<td class='tag'><b>".$i."</b></td>";
    }else {echo "<td class='tag'>".$i."</td>";}
    }
    //--------------------
    echo"</tr>";
    .....
    echo"</table>";
    

    Aber ich fürchte, das geht weder in C++ noch in XML - ich habe auch SFML gefunden. Aber wie bekomme ich das in Qt rein? Geht das überhaupt?

    Viele Grüße
    Claudia



  • einen QTableView/QTableWidget kann man auch mit eigenen css ähnlicher syntax stylen:
    https://doc.qt.io/qt-5/stylesheet-reference.html (Punkt QTableView)



  • Dies kann dann z.B. so aussehen:

    myTable->setAlternatingRowColors(true);
    myTable->setStyleSheet("alternate-background-color: yellow; background-color: red;");
    


  • Ah, super, Danke 😃
    Das hilft mir auf jeden Fallen schon mal weiter.


Anmelden zum Antworten