知行编程网知行编程网  2022-10-07 11:30 知行编程网 隐藏边栏  20 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python Tkinter Place布局管理器及用法的相关知识,包括框架的默认布局管理器,以及布局管理器的父类这些编程知识,希望对大家有参考作用。

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 表示在窗口的中间.

依赖:指定组件的Y坐标,在父容器的总高度中,1。该值应该在0.0到1.0之间,其中0.0表示在窗口的顶部,1.0表示在窗口的底部窗口,0.5 表示它在窗口的中间。

width:指定组件的宽度,以 pixel 为单位。

height:指定组件的高度,以 pixel 为单位。

relwidth:指定组件的宽度,在父容器的总宽度中。单位为 1。该值应介于 0.0 和 1.0 之间,其中 1.0 表示整个窗口宽度,0.5 表示窗口的一半宽度。

relheight:指定组件的高度,以1为单位,父容器的总高度。该值应介于 0.0 和 1.0 之间,其中 1.0 表示整个窗口的高度,0.5 表示窗口高度的一半。

bordermode:该属性支持“inside”或“outside”属性值,用于指定在设置组件的宽高时是否计算组件的边框宽度。

在使用 Place 布局管理容器中的组件时,需要设置组件的 x、y 或 relx、rely 选项。 Tkinter容器中坐标系的原点(0,0)在左上角,X轴向右延伸,Y轴向下延伸如图

Python Tkinter Place 布局管理器和使用

如果坐标由x和y指定,单位是像素;如果坐标由relx和rely指定,则整个父容器的宽高都是1。无论哪种方式指定坐标,从图1中不难发现,x指定的坐标值越大,组件越靠右; y指定的坐标值越大,分量越低。

下面介绍一个使用 Place 进行布局的例子,该示例将会动态计算各 Label 的大小和位置,并通过 place() 方法设置各 Label 的大小和位置。

# Python 2.x使用这行
#from Tkinter import *
# Python 3.x使用这行
from tkinter import *
import random
class App:
    def __init__(self, master):
        self.master = master
        self.initWidgets()
    def initWidgets(self):
        # 定义字符串元组
        books = ('疯狂Python讲义', '疯狂Swift讲义', '疯狂Kotlin讲义',\
            '疯狂Java讲义', '疯狂Ruby讲义')
        for i in range(len(books)):
            # 生成3个随机数
            ct = [random.randrange(256) for x in 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' if grayness < 120 else 'Black',
                bg = bg_color)
            # 使用place()设置该Label的大小和位置
            lb.place(x = 20, y = 36 + i*36, width=180, height=30)
root = Tk()
root.title("Place布局")
# 设置窗口的大小和位置
# width x height + x_offset + y_offset
root.geometry("250x250+30+30")  
App(root)
root.mainloop()

上述程序第26行代码是调用place()方法执行Place布局的关键代码。调用place()方法时,主要设置x(X坐标)、y(Y坐标)、width(宽度)、height(高度)四个选项。通过这四个side item,可以控制每个Label的位置和大小。尺寸。

为了增加一些趣味,上面的程序使用随机数计算Label组件的背景色,根据背景色的灰度值计算Label组件的前景色:如果灰度小于125,背景颜色较深,前景色使用白色;否则,背景颜色较浅,前景色为黑色。运行上面的程序,可以看到如图所示的界面。

Python Tkinter Place 布局管理器和使用

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享