【发布时间】:2014-09-19 12:28:32
【问题描述】:
如何防止 Tkinter 小部件(特别是标签)自动变宽?我的代码中有一个标签,我将不同长度的字符串传递给该标签。如果字符串比列宽更宽(使用网格布局管理器),我希望将它们移动到新行而不是拉伸列。下面是一些说明问题的代码。
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()
作为一个快速的旁注:避免 self.labvar.set("I dont...") 行超过 80 个字符限制的正确方法是什么?我尝试使用 """ 并将其分成两行,但字符串随后也用两行放入标签中。
【问题讨论】:
标签: python python-2.7 tkinter