我正在用tkinter编写一个应用程序,我试图在框架中放置几个标签……不幸的是,

windowTitle=Label(... width=100)

windowFrame=Frame(... width=100)

宽度差异很大……

到目前为止,我使用此代码:

windowFrame=Frame(root,borderwidth=3,relief=SOLID,width=xres/2,height=yres/2)
windowFrame.place(x=xres/2-160,y=yres/2-80)
windowTitle=Label(windowFrame,background="#ffa0a0",text=title)
windowTitle.place(x=0,y=0)
windowContent=Label(windowFrame,text=content,justify="left")
windowContent.place(x=8,y=32)

...

#xres is screen width
#yres is screen height

由于某种原因,设置标签宽度没有正确设置宽度,或者不使用像素作为测量单位…那么,有没有办法以适应框架长度的方式放置windowTitle小部件,或者以像素为单位设置标签宽度?

解决方法

高度和宽度在包含文本时以文本单位定义标签的大小.

按照@Elchonon Edelson的建议,设置第一帧小技巧的大小:

from tkinter import *
root = Tk()

def make_label(master,x,y,h,w,*args,**kwargs):
    f = Frame(master,height=h,width=w)
    f.pack_propagate(0) # don't shrink
    f.place(x=x,y=y)
    label = Label(f,**kwargs)
    label.pack(fill=BOTH,expand=1)
    return label

make_label(root,10,40,text='xxx',background='red')
make_label(root,30,background='blue')

root.mainloop()

dawei

【声明】:淮南站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。