对于Tkinter控件的布局,place()方法可以快速、精确的定位控件,但是在GUI设计时,确定控件的摆放位置可能需要事先精确计算。
本篇所讲的place()方法,主要包含以下参数的应用:
x/y
width/height
relx/rely
relwidth/relheight
1 定位
初步了解place()定位控件。
下面P18-G4-Place-1.py中,在顶层窗口root中创建了3个Label(标签),使用place()布局控件。
在place()方法中用到了x/y(相对于窗口、容器左上角的像素)两个参数确定控件位置。
!!!程序第5行的6个参数为3个控件位置参数,可以直接改参数值,避免到下面程序中改,这样便于改参数,运行程序,对比结果。第5行的参数在第17、18、19行用到。
2 定宽高
使用place()的width/height参数定义控件的宽度和高度。
下面P19-G4-Place-2.py中,第5、6行分别为每个控件定义了位置和宽高参数,对应18、19、20行。位置和宽高参数要匹配,以免控件重叠或相互遮挡。
!!!改第5、6行参数,运行程序,可对比控件不同位置、宽高效果。
3 相对位置
使用place()的relx/rely参数定义控件的相对位置。
下面P20-G4-Place-3.py中,第5行为每个控件定义了相对位置参数,对应17、18、19行。
!!!改第5行参数,运行程序,可对比控件不同位置效果,改变窗口尺寸,观察控件位置变化(相对位置不变,绝对位置变化)。
4 相对宽高
使用place()的relwidth/relheight参数定义控件的相对宽高。
下面P21-G4-Place-4.py中,第5、6行为每个控件定义了相对位置、相对宽高参数,对应18、19、20行。
!!!改第5、6行参数,运行程序,可对比控件不同相对位置、宽高效果。改变窗口尺寸,观察控件位置、宽高变化。
5 小结
使用place()方法,虽然可以精确定位,但要注意控件的尺寸,否则,极易错乱、重叠。