python tkinter界面设计,python tkinter窗口置顶
Place是其他GUI编程中的“绝对布局”,要求程序明确指定每个组件的绝对位置或其相对于其他组件的位置。
如果要使用place布局,只需调用相应组件的Place()方法。使用这种方法时,还支持一些详细的选项。这些选项的介绍如下:
x:指定组件的x坐标。X 0表示最左边的位置。
Y:指定组件的Y坐标。Y 0表示它在最右边。
Relx:指定组件的x坐标,以父容器的总宽度为单位1。该值应介于0.0和1.0之间,其中0.0表示最左边的窗口,1.0表示最右边的窗口,0.5表示窗口的中间。
Rely:指定组件的Y坐标,以父容器的总高度为单位1。该值应该介于0.0和1.0之间,其中0.0表示窗口的顶部,1.0表示窗口的底部,0.5表示窗口的中部。
Width:以像素为单位指定组件的宽度。
Height:以像素为单位指定组件的高度。
Relwidth:指定组件的宽度,以父容器的总宽度为单位1。该值应介于0.0和1.0之间,其中1.0表示整个窗口的宽度,0.5表示窗口的一半宽度。
Relheight:指定组件的高度,以父容器的总高度为单位1。该值应介于0.0和1.0之间,其中1.0表示整个窗口的高度,0.5表示窗口高度的一半。
Bordermode:该属性支持“内部”或“外部”的值,用于指定在设置组件的宽度和高度时是否计算其边框宽度。
使用Place layout管理容器中的组件时,需要设置组件的X、Y或relx、rely选项。Tkinter容器中坐标系的原点(0,0)在左上角,这里X轴向右延伸,Y轴向下延伸,如图。
如果用x和y指定坐标,单位是像素;如果坐标由relx和rely指定,则整个父容器的宽度和高度为1。无论用哪种方式指定坐标,从图1中不难发现,X指定的坐标值越大,分量越向右;y指定的坐标值越大,分量越低。
下面是一个使用place的布局示例,它将动态计算每个标签的大小和位置,并通过Place()方法设置每个标签的大小和位置。
#Python2.x使用这一行
#fromTkinterimport*
#Python3.x使用这一行
fromtkinterimport *
随机输入
classApp:
def__init__(self,master):
self.master=主人
self.initWidgets()
definitWidgets(self):
#定义字符串元组
Books=(疯狂Python讲义,疯狂Swift讲义,疯狂科特林讲义,\
疯狂Java讲义,疯狂Ruby讲义)
foriinrange(len(图书)):
#生成3个随机数
CT=[random . rand range(256)for Xin range(3)]
grayness=int(round(0.299*ct[0]+0.587*ct[1]+0.114*ct[2]))
#将元组中3个随机数格式化成16进制数,转成颜色格式
bg_color="#%02x%02x%02x"%tuple(ct)
#创建Label,设置背景色和前景色
lb=Label(root,
text=books[i],
fg='White'ifgrayness<120else'Black',
bg=bg_color)
#使用place()设置该Label的大小和位置
lb.place(x=20,y=36+i*36,width=180,height=30)
root=Tk()
root.title("Place布局")
#设置窗口的大小和位置
#widthxheight+x_offset+y_offset
root.geometry("250x250+30+30")
App(root)
root.mainloop()上面程序中第 26 行代码就是调用 place() 方法执行 Place 布局的关键代码。在调用 place() 方法时主要设置了 x(X 坐标)、y(Y 坐标)、width(宽度)、height(高度)这四个选项,通过这四个边项即可控制各 Label 的位置和大小。
为了增加一些趣味性,上面程序使用随机数计算了 Label 组件的背景色,并根据背景色的灰度值来计算 Label 组件的前景色:如果 grayness 小于 125,则说明背景色较深,前景色使用白色;否则说明背景色较浅,前景色使用黑色。运行上面程序,可以看到如图所示的界面。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。