购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.3 place()方法

place()方法可以设置组件的大小及组件在容器中的精确位置。其参数及其含义如表4.3所示。

表4.3 place()方法参数及其含义

由表4.3可以看出,place()方法可以使用两种方式来设置组件的大小及位置,第一种是通过参数x、y、width和height设置组件的大小和位置;第二种是通过参数relx、rely、relwidth和relheight设置组件的大小和位置。下面具体介绍。

4.3.1 x、y、width和height

视频讲解

表4.3中的x和y可以定义组件的位置,其中(x=0,y=0)位置是窗口的左上角顶点,而width和height分别可以设置组件的宽度和高度,这四个参数设置了组件的绝对位置和绝对大小。换句话说,无论窗口放大或缩小,组件的位置及大小都不会发生改变。下面通过一个实例来演示其用法。

实例4.9 布局华容道游戏窗口

实例位置:资源包\Code\04\09

《三国演义》中有一段经典故事:曹操败走华容道,又遇诸葛亮的伏兵,而关羽为报答曹操曾经的收留之恩,帮助曹操逃出华容道。这段经典故事衍生出一款滑块类游戏——华容道。玩游戏时,只要拖动滑块,帮助“曹操”从最下方中间出口“逃出”即可。本实例通过place()在窗口中布局华容道游戏窗口,具体代码如下:

运行效果如图4.21所示。

4.3.2 relx、rely、relwidth和relheight

视频讲解

在实现实例4.9所布局的华容道游戏窗口后可发现,当放大窗口时,华容道界面的右侧或者下方就会显示空白区域,如图4.22所示。如果我们不希望有空白区域,而是希望窗口内的组件能够随窗口的缩放而进行缩放,那么可以使用relx、rely、relwidth和relheight参数。

图4.21 place()布局华容道游戏窗口

图4.22 放大窗口时,窗口右侧和下方显示空白区域

relx和rely可以设置组件相对窗口的位置,其取值范围是0.0~1.0,可以理解为分别位于窗口水平方向和垂直方向的比例;relheight和relwidth分别设置组件的大小占窗口的比例。

实例4.10 布局跟随窗口缩放的华容道游戏窗口

实例位置:资源包\Code\04\10

将实例4.9的窗口效果修改为游戏内滑块与窗口等比例缩放,具体代码如下:

初始运行效果与图4.21相同,当放大窗口时,可看到各组件随窗口一起放大,如图4.23所示。

图4.23 放大窗口时的运行效果 w6OUM8Dtl2KKPyh66+zDS1Xysr8Fw/doupph341mJVwuVRQwobYAja6lbgvwXy0W

点击中间区域
呼出菜单
上一章
目录
下一章
×