5 Stimmen

HowTo erstellen Modell/Ansicht QTableView mit benutzerdefinierten (nicht editierbar) Delegaten?

Hier ist, was ich versuche, zu bekommen (dies ist ein QTableView Widget + MVC auf Grund QAbstractTableModel mit multiplizieren Delegierte ):

enter image description here

Anmerkungen:

  • Die Delegierten arbeiten nicht als Redakteure, sie sind NUR Betrachter! Ich kann das Modell nicht mit dieser Tabellenansicht bearbeiten.

  • Die Delegierten müssen realisierbar sein. Es bedeutet, dass alle Gesamthöhe der blauen Zeile 25px oder 250px sein könnte.

  • MV sind einfache Daten:

    1ROW: Firmenname1 Name1,Name2,Name3 SONSTIGE DATEN

    2ROW: Firmenname2 Einzelname1 SONSTIGE DATEN

    3ROW: Firmenname3 Name1,Name2 ANDERE DATEN und so weiter...

Frage:

  • Ist es möglich, einen benutzerdefinierten Delegaten zu erstellen ( QItemDelegate 或いは QStyleItemDelegate ), zum Beispiel in die 2. Spalte wie auf dem Bild oben? Und wenn es möglich ist, vielleicht könnten Sie mir einige Beispiele geben, oder Ressource-Links, wo kann ich sie zu sehen.

PS. Ja, ich habe mir alle Qt-Demo Beispiele mit Delegierten, aber ich verstehe einfach nicht, wie ich das machen kann, was ich will.

PSS. QTableView -> setIndexWidget() Ich halte das für keine gute Idee. Aber QTableView -> setItemDelegateForColumn( myCustomDelegate ) Methoden sind besser!

P3S. Ich bin nicht auf der Suche nach einer Lösung für QTableWidget Klasse...

Ich danke Ihnen für Ihre Antworten! :-)


Update #1:

  • Ich glaube das:

    • Delegierte werden nur für Bearbeitungen verwendet (z. B. wenn wir mit einem Modell/Ansichtsobjekt arbeiten) und verwalten ähnliche Elemente (alle/eine Spalte/eine Zeile).

    • Benutzerdefinierte Widgets sind besser, aber ich habe sie nicht in freien Qt-Projekten getroffen. Und es ist nicht so einfach, den schönen und korrekten Code solcher Widgets zu bekommen...


Zusatz:

  • Hier ist Link zur Ähnlichkeitsfrage.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X