2010-01-18 10 views
6

Wenn ich nur ein Standard-TextView mit dem Justification Satz Center machen, sieht es so etwas wie dieses:In Gtk, wie zentriere ich den Text in einem TextView vertikal?

Center-Justified TextView

Wenn ich will auch vertikal um den Text zu zentrieren, als auch horizontal, wie kann ich tun Dies?

+0

Ich sehe keine Möglichkeit, dies "normal" mit GtkTextView zu tun. Sie könnten GtkTextView wahrscheinlich ableiten und einige seiner Textzeichnungsfunktionen außer Kraft setzen, aber es kann ziemlich schwierig sein. Ich empfehle dringend, stattdessen in der GTK + Mailingliste nachzufragen, da dort mehr Leute mit relevantem Wissen sind. –

Antwort

4

TextViews sind normalerweise für eine große Menge an Text gedacht, die der Benutzer bearbeiten kann. Als solches kann es zu groß werden und muss scrollen, daher die Schwierigkeit bei der vertikalen Zentrierung.

Wenn Sie es nur zum Anzeigen einer Nachricht verwenden, die nicht bearbeitet werden muss, können Sie stattdessen Gtk.Label ausprobieren, die Sie vertikal zentrieren können.

+1

Ich sehe, ich nehme Ihren Rat für jetzt und die Verwendung von Labels anstelle von TextViews. Schließlich möchte ich, dass sie vor Ort bearbeitet werden können. Hoffentlich gibt es dafür eine Lösung. –

3

Sie können eine solche Ausrichtung möglicherweise manipulieren, indem Sie pixels-above-lines basierend auf der Größe des Textansicht-Steuerelements und der Größe des darin angezeigten Texts dynamisch aktualisieren.

+0

Durch die Kombination von Pixeln über Zeilen mit einer Schriftart mit einem Abstand von einem Meter oder dem Herausziehen des Texts, um herauszufinden, wie viele Zeilen benötigt werden, können Sie automatisch berechnen, wie der Wert sein soll (durch Vergleich mit der Höhe von TextView) selbst). – Peter

+0

@minitech: Ich bin schon lange von diesem Problem weggegangen und bin nicht zurück gegangen, um diese Lösung zu untersuchen. Da Sie das Kopfgeld auf diese Frage gelegt haben, hat diese Lösung für Sie funktioniert? Ich werde die Antwort akzeptieren, wenn es so ist. –

+1

@Matthew: Nein, ich habe nicht herausgefunden, wie man den Text darin misst, aber das ist die korrekteste Antwort von allen, und ich wollte nicht, dass das Kopfgeld verschwendet wird :) Ich füge ein Codebeispiel, wenn ich es bekomme. – Ryan

Verwandte Themen