Ich habe eine QTableWidget mit einer letzten Spalte, die Text variabler Länge enthält.QHeaderView: Stretch oder ResizeToContents basierend auf Spalten Inhalt Größe
Ich möchte entweder den letzten Abschnitt des QHeaderView auf den Inhalt basierend auf der Größe des Abschnitts strecken oder die Größe ändern. Wenn die Inhaltsgröße den verbleibenden Platz im Widget nicht überschreitet, möchte ich es dehnen (um einen hässlichen, ungefüllten Bereich im Widget zu verhindern). Ich kann dies erreichen, indem ich setStretchLastSection(True)
verwende. Wenn die Inhaltsgröße jedoch die gestreckte Spalte überschreitet, werden die letzten Teile meines Inhalts abgeschnitten, da die Größe der Spalte nicht geändert wird. QHeaderView stellt den ResizeMode ResizeToContents
für diesen Fall bereit, jedoch bleibt das Widget bei kurzen Inhalten leer.
Ich dachte über manuelle Größenanpassung der Spalte. Leider kann ich nicht direkt auf die Inhaltsgröße zugreifen, da sectionSizeFromContents()
geschützt ist. Ich denke, ich könnte QHeaderView ableiten und neu implementieren, aber ich frage mich, ob es eine bessere Lösung gibt.
Geschützte Methoden zugänglich in pyqt sind, Wenn Sie nicht Python verwenden, entfernen Sie bitte die pyqt Tags von deiner Frage. – ekhumoro
Ich benutze pyqt5. Beim Aufruf von 'sectionSizeFromContents()' bekomme ich folgende Ausnahme: 'RuntimeError: kein Zugriff auf geschützte Funktionen oder Signale für Objekte, die nicht aus Python stammen. – tsabsch
Ja, erstellen Sie einfach eine Instanz von 'QHeaderView' und setzen Sie sie auf den Tisch. Sie müssen keine Unterklasse erstellen. – ekhumoro