Feste Schriftbreite

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Zando
User
Beiträge: 37
Registriert: Sonntag 9. Juli 2006, 17:18

Hallo :)

kann man eine andere Schriftart für die Ausgabe einstellen, damit man Tabellen erzeugen kann, wo die Spalten wirklich Spalten sind und nicht irgendwo rumflattern... (und wenn ja, wie?)

Mein konkretes Problem ist zurzeit, dass ich "ljust" benutze und mit Leerzeichen aufgefüllt wird, nur macht es einen Unterschied, ob ich davor beispielsweise zehn
"llllllllll"s habe oder zehn
"mmmmmmmmmm"s :D

So long
Carsten
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Zando hat geschrieben:kann man eine andere Schriftart für die Ausgabe einstellen, damit man Tabellen erzeugen kann, wo die Spalten wirklich Spalten sind und nicht irgendwo rumflattern
Nein.

Dein Terminalfenster ist falsch eingestellt, wenn du eine proportionale Schriftart ausgewählt hast! Terminals sollten immer eine nicht-proportionale Schriftart haben.
Zando
User
Beiträge: 37
Registriert: Sonntag 9. Juli 2006, 17:18

hmmm, nur ist das Problem, dass ich das nicht in der Konsole anzeigen lasse, sondern in einem wx.TextCtrl-Feld.

Siehe:
Beispiel

So long
Carsten
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Ah!

Das geht natürlich, du musst nur eine andere (nicht-proportionale) Schriftart wählen, oder noch besser, die Zahlen einfach rechtsseitig formatiert ausgeben.

Vielleicht hättest du im richtigen Forum posten sollen, um das Mißverständnis zu vermeiden...
Zando
User
Beiträge: 37
Registriert: Sonntag 9. Juli 2006, 17:18

Danke erstmal. Habe das hierein gepostet, weil ich das Problem trotzdem auch im Terminal von meinem Python-Editor habe, wenn ich es ohne GUI mache :)

Wie ich dich verstehe, muss ich trotzdem die Schrift an meinem System umstellen (rechtsbündig mag ich nicht *g*). Ich würde aber gern wollen, dass es auch auf anderen Computern ordentlich laufen würde, ohne das man dafür sein System anpassen muss ;)

Hätte vielleicht noch jemand eine andere Idee, außer Tabulatoren zu verwenden (die ich ebenfalls nicht in diesem Zusammenhang mag, ja ich bin wählerisch :P )

So long
Carsten
Benutzeravatar
Michael Schneider
User
Beiträge: 569
Registriert: Samstag 8. April 2006, 12:31
Wohnort: Brandenburg

Hi,

nein, das liegt ausschließlich an der verwendeten Schriftart. In Tkinter verwende ich standardmäßig

Code: Alles auswählen

fontBold = ("Courier", 12, "bold")
Courier ist die bekannteste Schriftart mit Zeichen fester Breite und sollte auf allen Systemen verfügbar sein - wenn Dein Terminal/Kommandofenster die nicht darstellen kann...
Also mein WinXP cmd/command hat standardmäßig eine Schriftart mit fester Breite eingestellt.

Grüße,
der Michel
Diese Nachricht zersört sich in 5 Sekunden selbst ...
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

sonst sollte aber auch der tabulator helfen können, wenn man einigermaßen die länge des output einschätzen kann
http://www.cs.unm.edu/~dlchao/flake/doom/
Benutzeravatar
Michael Schneider
User
Beiträge: 569
Registriert: Samstag 8. April 2006, 12:31
Wohnort: Brandenburg

Hi murph,

die ist nun aber das letzte, das (selbst unter gleichen Betriebssystemen) gleich ist. :-)

Grüße,
Michael
Diese Nachricht zersört sich in 5 Sekunden selbst ...
Zando
User
Beiträge: 37
Registriert: Sonntag 9. Juli 2006, 17:18

Danke für die weiteren Antworten.

Tabulatoren wollte ich ja nicht unbedingt, wie ich schrieb :)

Und das Courier eine Festbreitenschriftart ist, weiß ich. Nur leider weiß ich nicht wie ich die innerhalb Python einstellen könnte. Schließlich soll es ohne Manipulation am System gleich richtig angezeigt werden.

Notfalls bastel ich kleine Bildchen mit Buchstaben und Ziffern mit der gleichen Breite und setze die nebeneinander :lol:

So long
Carsten
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Lies dir doch einfach durch, wie man in wxPython einem wxTextCtrl eine bestimmte Schrift zuordnet...
Benutzeravatar
Michael Schneider
User
Beiträge: 569
Registriert: Samstag 8. April 2006, 12:31
Wohnort: Brandenburg

Hallo,
... oder nimm Tkinter und meine Zeile.

Grüße,
Michael
Diese Nachricht zersört sich in 5 Sekunden selbst ...
Benutzeravatar
DatenMetzgerX
User
Beiträge: 398
Registriert: Freitag 28. April 2006, 06:28
Wohnort: Zürich Seebach (CH)

wxTextCtrl
A text control allows text to be displayed and edited. It may be single line or multi-line.

Derived from

streambuf
wxControl
wxWindow
wxEvtHandler
wxObject

Include files

<wx/textctrl.h>

Window styles

wxTE_PROCESS_ENTER The control will generate the event wxEVT_COMMAND_TEXT_ENTER (otherwise pressing Enter key is either processed internally by the control or used for navigation between dialog controls).
wxTE_PROCESS_TAB The control will receive wxEVT_CHAR events for TAB pressed - normally, TAB is used for passing to the next control in a dialog instead. For the control created with this style, you can still use Ctrl-Enter to pass to the next control from the keyboard.
wxTE_MULTILINE The text control allows multiple lines.
wxTE_PASSWORD The text will be echoed as asterisks.
wxTE_READONLY The text will not be user-editable.
wxTE_RICH Use rich text control under Win32, this allows to have more than 64KB of text in the control even under Win9x. This style is ignored under other platforms.
wxTE_RICH2 Use rich text control version 2.0 or 3.0 under Win32, this style is ignored under other platforms
wxTE_AUTO_URL Highlight the URLs and generate the wxTextUrlEvents when mouse events occur over them. This style is only supported for wxTE_RICH Win32 and multi-line wxGTK2 text controls.
wxTE_NOHIDESEL By default, the Windows text control doesn't show the selection when it doesn't have focus - use this style to force it to always show it. It doesn't do anything under other platforms.
wxHSCROLL A horizontal scrollbar will be created and used, so that text won't be wrapped. No effect under wxGTK1.
wxTE_LEFT The text in the control will be left-justified (default).
wxTE_CENTRE The text in the control will be centered (currently wxMSW and wxGTK2 only).
wxTE_RIGHT The text in the control will be right-justified (currently wxMSW and wxGTK2 only).
wxTE_DONTWRAP Same as wxHSCROLL style: don't wrap at all, show horizontal scrollbar instead.
wxTE_CHARWRAP Wrap the lines too long to be shown entirely at any position (wxUniv and wxGTK2 only).
wxTE_WORDWRAP Wrap the lines too long to be shown entirely at word boundaries (wxUniv and wxGTK2 only).
wxTE_BESTWRAP Wrap the lines at word boundaries or at any other character if there are words longer than the window width (this is the default).
wxTE_CAPITALIZE On PocketPC and Smartphone, causes the first letter to be capitalized.
1:1 Kopiert aus der WXwidgets referenz musst halt zwischen die wxBezeichnung je einen punkt setzen. sonst kannst du das fast immer 1:1 übernehmen In deinem Fall käme als style flag wx.TE_RIGHT in den fall
Antworten