Ich möchte, dass eine Tabellenzelle nur ein Symbol ohne Text enthält.
Ich sehe, dass die QTableWidgetItem
-Klasse eine Methode hat, um den Text ( int QTableWidgetItem::textAlignment () const
)
Ich finde keine Möglichkeit, die Position des Symbols anzupassen (das links zu hängen scheint - selbst dort, wo sich kein Text in der Zelle befindet)
Sehen Sie sich die Spalten Status und Energie an.
Sie können die Position des Symbols in Bezug auf den Text über die Stiloptionen beeinflussen.
Wenn das QTableWidgetItem ohne Text erstellt wird (über den Konstruktor, der kein Textargument akzeptiert), wird das Datenelement Qt :: DisplayRole nicht festgelegt, und der Text wird weder angezeigt noch wirkt es sich auf das Rechteck der Symbolanzeige aus .
Ich konnte die Position des QTableWidgetItem-Symbols beeinflussen, indem ich das QTableWidget-Objekt abzweigte, die viewOptions-Methode überschrieb und das Feld decorationAlignment der Ansichtsoptionen wie folgt einstellte:
%Vor%Ich denke, es ist das grundlegende Verhalten von QTableWidgetItem, das es nicht erlaubt, irgendetwas in Bezug auf das Icon zu ändern ...
Sehen Sie sich das Beispiel "Star Delegate Example" von Qt an, vielleicht finden Sie etwas interessantes für Ihr Problem! Es ist ein bisschen Arbeit, aber Sie sollten in der Lage sein, die Zelle auf eine andere Weise zu zeichnen, wenn sie keinen Text enthält!
Hoffe, dass diese Hilfe ein bisschen hilft!
Es scheint, dass Sie QTableWidgetItem
ableiten und die Funktion paintEvent
neu schreiben müssen, wo Sie sind in der Lage, das Symbol zu zeichnen, wo Sie möchten.