Kann ich mehr als eine Zeile in einer Tabelle-header in Qt?
Ich bin mit Qt4 und ich habe eine QTableView
zeigt die Daten mithilfe einer benutzerdefinierten Modell. Ich möchte zwei Zeilen in der Kopfzeile der Tabelle, im Idealfall mit einigen der Zellen in der ersten Zeile über mehrere Spalten. Ist das möglich?
Du musst angemeldet sein, um einen Kommentar abzugeben.
War ich auch auf der Suche nach einer Lösung für dieses problem. Ich habe festgestellt, das die Klasse:
HierarchicalHeaderView
bei qt-apps.org durch Benutzer Barmaglodd (krasnoschtschekow Petr).
Diese Lösung geht über das hinaus, was Sie (und ich) brauchen. Auch habe ich nicht verwenden können, Ihre Lösung durch Ihren copyright-Vermerk.
Dieser Beitrag aus blog.qt.digia.com von Andy Shaw zeigt, wie Sie overlay QComboBoxes über einen header. In meiner Lösung habe ich das gleiche getan mit einem anderen header anzeigen. Dies ist ähnlich wie Sie überlagert ein QTableView auf einem QTableView für die Qt-Frozen Spalte B.. Für diese Lösung, müssen Sie eine Unterklasse sowohl der QTableWidget und QHeaderView. Auch, wenn Sie möchten, dass der Benutzer die Spaltenbreite anpassen, dass dauert extra Arbeit.
Tipp: überladen Sie den SizeHint zu geben, eine Höhe 2x der normalen Höhe der 'main' headerview, richten Sie den text der Haupt-header-Ansicht auf den Boden und zeichnen Sie die andere headerview auf der Oberseite des normalen ein, dazu in das
Methode.
Ich habe ein ähnliches problem in Bezug auf die mehreren headder Linien von einem QTableView. Ich löste es mit einem einfachen "\n" in der Spalte header-text.
Unter dem Eindruck der HierarchicalHeaderView ich habe ein Python-port und ein einfaches Modell zur Anzeige pandas DataFrames mit Multi-Level-Header (MultiIndex) in QTableView.
Hier sind die ersten Ergebnisse dataframemodel. upd: es ist ziemlich langsam, mit großen DataFrames
Können Sie eine benutzerdefinierte Kopfzeile, indem Sie eine
QTableWidgetItem
und dann mit dersetHorizontalHeaderItem()
. Die Methode hat eine Spalte mit der Nummer, so bin ich nicht sicher, ob das wird es ermöglichen, über mehrere Spalten nativ-aber zumindest können Sie den gleichenQTableWidgetItem
für mehrere Spalten.Soweit mit zwei Zeilen in den header, ich glaube nicht, dass dies derzeit unterstützt. Aber wahrscheinlich könnte man diese Funktionalität hinzufügen, indem Sie Ihre eigenen Rollen abgeleitete Klasse
QTableWidget
wenn Sie ehrgeizig sind.