PySimpleGUI 列元素
列元素也是一个容器小部件。如果你想设计以一个或多个垂直列表示的GUI窗口元素,它是非常有用的。就像一个窗口一样,Column区域将其他PySimpleGUI元素放置在一个由列表组成的布局中。
一个Column布局类似于Frame。然而,Column并不像Frame那样有边界或标题。但是当你想并排放置一组元素时,它是非常有效的。
传递给Column构造函数的强制性参数是布局为列表,每个内部列表是一排元素。
其他参数可以给定为
PySimpleGUI.Column(layout, size, scrollable,
vertical_scroll_only, element_justification)
其中。
- layout – 将被显示在柱状容器中的布局
-
size – (宽度,高度)尺寸,单位是像素
-
Scrollable – 如果为真,那么滚动条将被添加到该列中
-
vertical_scroll_only – 如果为真,则不会显示水平滚动条。
-
element_justification – 列内的所有元素都会有 “左”、”右 “或 “中心 “的理由。
Column类中定义的一个重要方法是 contents_changed()。 如果Column的scrollable属性被启用,并且通过使一些元素可见或不可见来改变布局,当这个方法被调用时,新的可滚动区域被计算出来。
尽管像Column这样的容器元素通常不是事件监听者,但它的可见属性可能会被动态更新。
下面的代码显示了你如何使用Column元素。主布局的上行有一个Text和Input元素。最后一行有 “确定 “和 “取消 “按钮。中间一行有两列,每列都有输入元素,用于输入通信和永久地址。它们的元素布局被存储为col1和col2。这些被用来声明两个Column对象,并放置在主布局的中间行的列表中。
import PySimpleGUI as psg
psg.set_options(font=("Arial Bold",10))
l=psg.Text("Enter Name")
l1=psg.Text("Address for Correspondence")
l2=psg.Text("Permanent Address")
t=psg.Input("", key='-NM-')
a11=psg.Input(key='-a11-')
a12=psg.Input(key='-a12-')
a13=psg.Input(key='-a13-')
col1=[[l1],[a11], [a12], [a13]]
a21=psg.Input(key='-a21-')
a22=psg.Input(key='-a22-')
a23=psg.Input(key='-a23-')
col2=[[l2],[a21], [a22], [a23]]
layout=[[l,t],[psg.Column(col1), psg.Column(col2)], [psg.OK(), psg.Cancel()]]
window = psg.Window('Column Example', layout, size=(715,200))
while True:
event, values = window.read()
print (event, values)
if event in (psg.WIN_CLOSED, 'Exit'):
break
window.close()
它将产生以下 输出 窗口 –