Ich weiß, Sie können legen Sie die Ausrichtung für jedes Element unter:
TableWidget->item(0,0)->setTextAlignment(Qt::AlignLeft);
Allerdings würde ich gerne einen Standard-Ausrichtung für alle Zellen, um zu tun nicht haben, um es jedes mal, wenn ich ein neues Element erstellen. Ist es möglich?
InformationsquelleAutor der Frage jsalvador | 2013-04-05
Ja, es ist möglich. Aber Sie müssen verstehen, Sie sind nicht bei der änderung einer Eigenschaft des Tabellen-widget, sondern eine Eigenschaft des table-widget-Element. Zuerst erstellen Sie Ihre eigenen Artikel, und stellen Sie es wie Sie wollen
Dann jedes mal, wenn Sie ein neues Element erstellen, anstatt den Konstruktor verwenden Sie
Andere alternative zu Klonen (ungetestet) ist um einen Prototyp auf Ihre tablewidget
Dieser Letzte kann man mehr angemessen, wenn Sie über eine Benutzeroberfläche oder wenn das Element bearbeitbar ist.
InformationsquelleAutor der Antwort UmNyobe
Ich glaube nicht, dass es eine vorhandene Methode für diese, aber hier sind zwei Ansätze, die funktionieren:
1.) Unterklasse QTableWidgetItem
Dies ist jedoch wahrscheinlich ein bisschen zu viel für nur eine einzige Einstellung + möchten Sie vielleicht, um eine überlastung alle vier Konstruktoren von QTableWidgetItem.
2.) Ein weiterer Ansatz ist mit einem factory-anstelle von aufrufen von new:
Hinweis: Die verlinkten Artikel spricht über unit-Tests, aber es gibt viele weitere Vorteile, indem Sie zu tun.
Dann statt
können Sie tun
wo
myFactory
ist ein Objekt derMyTableWidgetFactory
.InformationsquelleAutor der Antwort Tim Meyer