QTextDocumentWriter - Spaltenbreite in Tabelle festlegen

Alles rund um die Programmierung mit Qt
Antworten
hasu
Beiträge: 5
Registriert: 28. Januar 2010 23:40

QTextDocumentWriter - Spaltenbreite in Tabelle festlegen

Beitrag von hasu »

Hallo,
ich möchte in einem Projekt automatisiert Textdokumente erzeugen, hierfür stellte sich der QTextDocumentWriter bisher als recht brauchbare Lösung heraus.
Die Dokumente sollen jedoch auch Tabellen enthalten und ich habe ein paar Probleme mit deren Formatierung.

Meine Tabelle hat in der ersten Spalte einen Namen stehen und in den weiteren Spalten einzelne Ziffern, die erste Spalte muss also deutlich breiter sein als die folgenden.
Dies sollte man ja eigentlich mit QTextTableFormat::setColumnWidthConstraints erreichen können, aber das ganze funktioniert bei mir leider nicht.

Mein Format-Initialisierungscode sieht wiefolgt aus (PyQt, aber sollte sich nicht viel nehmen, hoffe man kann es entziffern):

Code: Alles auswählen

      ...
      a = QtGui.QTextTableFormat()
      textLengths = [QtGui.QTextLength(QtGui.QTextLength.FixedLength, 500)]
      for i in range(9): textLengths.append(QtGui.QTextLength(QtGui.QTextLength.FixedLength, 30))
      a.setColumnWidthConstraints(textLengths)
€: Ich versuche es hier nochmal sinngemäß in C++ zu übersetzen um es leichter lesen zu können, hoffe da ist jetzt kein Fehler drin:

Code: Alles auswählen

QTextTableFormat a;
QVector<QTextLength> textLengths(10);
textLengths.append( new QTextLength(QTextLength::FixedLength, 500));
for (int i=0; i < 9; i++)
   textLengths.append( new QTextLength(QTextLength::FixedLength, 30));

a.setColumnWidthConstraints( textLengths );
Die ausgegebene Tabelle (ODF-Format) sieht allerdings trotzdem wiefolgt aus:
Bild

Der Befehl scheint also überhaupt nichts zu bewirken. Ich habe auch schon mit PercentageLength experimentiert, aber auch hier kein Effekt.
Mache ich da irgendetwas falsch? Gibt es eine andere Möglichkeit die Spaltengröße zu verändern? Oder ist das evtl. beim ODF-Format generell nicht möglich?
Antworten