QTableView mit Footer
QTableView mit Footer
Hallo,
ich möchte gern für ein QTableView einen Footer implementieren. Gibt es dafür evtl. schon etwas Fertiges oder ein gutes Beispiel? Wie habt Ihr das bisher realisiert?
ich möchte gern für ein QTableView einen Footer implementieren. Gibt es dafür evtl. schon etwas Fertiges oder ein gutes Beispiel? Wie habt Ihr das bisher realisiert?
Über ein VBoxLayout?!?
Code: Alles auswählen
QVBoxLayout* footerLayout = new QVBoxLayout(this);
QTableView* table = new QTableView;
FooterWidget* footer = new FooterWidget;
footerLayout->addWidget(table);
footerLayout->addWidget(footer);Ich gehe mal davon aus, dass der fett gedruckte Teil sarkastisch gemeint war. Und nein so einfach wie von dir beschrieben ist es nicht. Da gibt es einige unschöne Dinge auf die ich jetzt besser nicht näher eingehen werde. Wenn man von etwas keine (praktische) Ahnung hat dann einfach mal... haltenupsala hat geschrieben:Stimmt Qt hätte gleich ein passendes Widget fertig mit den Daten gefüllt liefern können.
Zwei Tables übereinander und dem unteren Widget den Header von oben zuweisen.
Solche Probleme entstehen immer dann, wenn die gestellten Anforderungen stark von den allgemeinen Anforderungen abweichen. Eine Tabelle braucht in fast allen Fällen vertikale und horizontale Beschriftungen - "Header".
Ein Footer, der auch noch als zusätzlicher "Header" fungieren soll ist mir bisher noch nicht untergekommen.
Daher ist eine direkte Lösung seitens Qt recht unwahrscheinlich.
Dein Problem ist trotzdem mit Qt-Mitteln leicht zu lösen.
Leg einfach ein zusätzliches QHeaderView unter deine Tabelle. Ein HeaderView sendet Signals beim resizen einzelner sections. Es existiert eine Methode "resizeSection" (leider kein Slot). Schreib dir dafür einen eigenen und connecte das SIGNAl das myTable->horizontalHeader() aussendet mit jenem SLOT und dein Footer wird automatisch an die Tabelle angepasst.
Ein Footer, der auch noch als zusätzlicher "Header" fungieren soll ist mir bisher noch nicht untergekommen.
Daher ist eine direkte Lösung seitens Qt recht unwahrscheinlich.
Dein Problem ist trotzdem mit Qt-Mitteln leicht zu lösen.
Leg einfach ein zusätzliches QHeaderView unter deine Tabelle. Ein HeaderView sendet Signals beim resizen einzelner sections. Es existiert eine Methode "resizeSection" (leider kein Slot). Schreib dir dafür einen eigenen und connecte das SIGNAl das myTable->horizontalHeader() aussendet mit jenem SLOT und dein Footer wird automatisch an die Tabelle angepasst.
Dann muss unter dem Footer(Summenzeile) auch noch ein horizontaler Scrollbalken. Und der Footer hat keinen vertikalen Scrollbalken, die überliegende Tabellle schon. Im Endeffekt habe ich es gelöst, es könnte aber einfacher sein 
P.S.: Ich kann mir nicht vorstellen, dass eine Summenzeile, bzw. ein Footer so speziell ist. Bei anderen Komponenten, wie z.B. Java-Web-Komponenten ist ein Footer selbstverständlich.
P.S.: Ich kann mir nicht vorstellen, dass eine Summenzeile, bzw. ein Footer so speziell ist. Bei anderen Komponenten, wie z.B. Java-Web-Komponenten ist ein Footer selbstverständlich.