Ist es möglich ein Label samt Text um 90° zu drehen, damit es vertikal steht? Dabei sollte der Text natürlich mitgedreht werden, so dass dieser auch vertikal steht.
Ist das mit Tkinter möglich?
Vertikale Labels mit vertikalem Text
-
- User
- Beiträge: 31
- Registriert: Freitag 4. April 2003, 13:09
- Wohnort: Egloffstein (Hundshaupten)
Hallo!
Dazu fällt mir jetzt bloss ein, den Text mit irgendeiner Bildbearbeitungssoftware um 90°zu drehen und ihn dann als image bzw. bitmap auf das Label zu pappen (Label(image = ... bzw. bitmap = ...)). Wär doch für den Anfang schon mal ne Notlösung oder ?
Gruss, jocsch
Dazu fällt mir jetzt bloss ein, den Text mit irgendeiner Bildbearbeitungssoftware um 90°zu drehen und ihn dann als image bzw. bitmap auf das Label zu pappen (Label(image = ... bzw. bitmap = ...)). Wär doch für den Anfang schon mal ne Notlösung oder ?
Gruss, jocsch
Das habe ich mir auch schon überlegt, allerdings wollte ich nach einer einfacheren Lösung fragen, da ich sehr viele Texte vertikal schreiben sollte und das alles zu bearbeiten ist sehr aufwendig.
Dann werde das einmal versuchen.
Dann werde das einmal versuchen.
kann man auf einem Tkinter label nicht mit
arbeiten?
unter Delphi hätte ich das so gemacht:
das sollte doch eigentlich funktionieren.
kann man sowas nicht auf Tkinter übertragen?
oder auch in andere Toolkits (GTK, Qt, ...)
Code: Alles auswählen
\n
unter Delphi hätte ich das so gemacht:
Code: Alles auswählen
Label1.Caption := 'L'+#13+'a'+#13+'b'+#13;
kann man sowas nicht auf Tkinter übertragen?
oder auch in andere Toolkits (GTK, Qt, ...)
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Hi DER Olf,
sollte gehen, dann sind die Zeichen halt nicht gedreht.
man kann das ganze auch in ein lambda packen.
Gruß
Dookie
sollte gehen, dann sind die Zeichen halt nicht gedreht.
Code: Alles auswählen
labeltext = "Hallo Welt"
vertical = "\n".join(list(labeltext))
Code: Alles auswählen
vertical = lambda x: "\n".join(list(x))
print vertical(labeltext)
Gruß
Dookie
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
man könnte es auch so schreiben in Python:
mach das mal bei längeren Texten oder 20 Labels. Da lass ich das lieber Python machen.
lambda ist eine anonyme Funktion. Wird hauptsächlich bei "functional Programming" eingesetzt, zur Listenverarbeitung zusammen mit map, reduce und filter. Kann aber auch z.B. bei GUI-Programmierung zum wrappen von Funktionen eingesetzt werden. Oder wie im konkreten Fall, als Ersatz für eine Funktion.
ist equivalent zu
Gruß
Dookie
Code: Alles auswählen
Label1.Caption = 'L'+'\n'+'a'+'\n'+'b'+'\n'+'e'+'\n'+'l'
lambda ist eine anonyme Funktion. Wird hauptsächlich bei "functional Programming" eingesetzt, zur Listenverarbeitung zusammen mit map, reduce und filter. Kann aber auch z.B. bei GUI-Programmierung zum wrappen von Funktionen eingesetzt werden. Oder wie im konkreten Fall, als Ersatz für eine Funktion.
Code: Alles auswählen
vertical = lambda x: "\n".join(list(x))
Code: Alles auswählen
def vertical(x):
return "\n".join(list(x))
Dookie
Hallo Python-Tinker-Freunde
Wenn die einzelnen Zeichen des Labeltextes
nicht unbedingt legen müssen sondern vertikal
stehen dürfen geht es natürlich auch so:
Slogan: Tkinter is not Delphi or MS-VB, it's TCL
Gruss wuf
Wenn die einzelnen Zeichen des Labeltextes
nicht unbedingt legen müssen sondern vertikal
stehen dürfen geht es natürlich auch so:
Code: Alles auswählen
import sys
from Tkinter import *
def ende():
sys.exit(0)
hauptfenster = Tk()
labeltext = "Vertikal"
height = len(labeltext)
# Label
lb = Label(hauptfenster,fg='blue',
relief = 'raised',
bg = 'khaki',
border = '2',
text = labeltext,
width = 2,
height = height,
wraplength = 1)
lb.pack(pady = 5)
bende = Button(hauptfenster, text = "Ende",command = ende)
bende.pack(pady = 5)
hauptfenster.mainloop()
Gruss wuf

Take it easy Mates!
-
- User
- Beiträge: 728
- Registriert: Sonntag 22. September 2002, 08:32
- Wohnort: Sauerland
- Kontaktdaten:
Hast recht!wuf hat geschrieben:Slogan: Tkinter is not Delphi or MS-VB, it's TCL
Aber wo wir schon einmal bei Delphi sind: Ich habe einmal etwas unter Delphi programmiert. Das ging mit Windows API Funktion CreateFont
Code: Alles auswählen
HFONT CreateFont(
int nHeight, // height of font
int nWidth, // average character width
int nEscapement, // angle of escapement
int nOrientation, // base-line orientation angle
int fnWeight, // font weight
DWORD fdwItalic, // italic attribute option
DWORD fdwUnderline, // underline attribute option
DWORD fdwStrikeOut, // strikeout attribute option
DWORD fdwCharSet, // character set identifier
DWORD fdwOutputPrecision, // output precision
DWORD fdwClipPrecision, // clipping precision
DWORD fdwQuality, // output quality
DWORD fdwPitchAndFamily, // pitch and family
LPCTSTR lpszFace // typeface name
);
Ich weiß, daß das hier nicht die gesuchte Lösung ist, aber vielleicht könnt ihr davon was ableiten.
Hans