python tkinter界面设计,python tkinter窗口置顶

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: