Vermeiden, dass tkinter-Etiketten durch einen langen String gedehnt werden
Wie kann ich das automatische Erweitern von Tkinter-Widgets (insbesondere Labels) verhindern? Ich habe ein Etikett in meinem Code, an das ich Zeichenfolgen unterschiedlicher Länge übergebe. In dem Fall, dass die Zeichenfolgen breiter als die Spaltenbreite sind (mithilfe des Rasterlayout-Managers), würde ich es vorziehen, sie in eine neue Zeile zu verschieben, anstatt die Spalte zu dehnen. Nachfolgend finden Sie einen Code, der das Problem veranschaulicht.
import Tkinter
class window(Tkinter.Tk):
def __init__(self,parent):
Tkinter.Tk.__init__(self,parent)
self.parent = parent
self.initialize()
def initialize(self):
self.grid()
self.columnconfigure(0, minsize=50)
self.columnconfigure(0, minsize=150)
self.rowconfigure(0,minsize=20)
self.rowconfigure(1,minsize=20)
self.rowconfigure(2,minsize=20)
self.labvar = Tkinter.StringVar()
self.lab = Tkinter.Label(self,bg='white',relief='groove',
textvariable=self.labvar)
self.lab.grid(row=0,column=0,rowspan=2,sticky='NSEW')
self.labvar.set("I don't want this to resize (Y dimension) ...")
self.but = Tkinter.Button(self, text='Click me!',command=self.onbut)
self.but.grid(row=2,column=0, sticky='NSEW')
def onbut(self):
self.labvar.set("I don't want this to resize (Y dimension) ...I'd rather this on a new line!")
if __name__ == "__main__":
app = window(None)
app.title('Window')
app.mainloop()
Als kurze Randnotiz: Was ist der richtige Weg, um zu vermeiden, dass die Zeile self.labvar.set ("I dont ...") die 80-Zeichen-Grenze überschreitet? Ich habe versucht, "" zu verwenden und es über zwei Zeilen aufzubrechen, aber die Zeichenfolge wurde dann auch mit zwei Zeilen in das Etikett eingefügt.