我已经创建了一个 Python 代码的 GUI。我在窗口中创建了一些元素。我希望元素能够响应窗口大小。我在窗口对象中添加了一个 resizable=true 属性,但它只会使应用程序窗口响应而不是窗口中包含的元素。
申请代码
sg.theme('DefaultNoMoreNagging')
video_frame_column = [
[sg.Text("Scanner", justification="center")],
[sg.Image(filename="", key="-IMAGE-")]
]
functional_column = [
[sg.Text("Log Settings", justification="center")],
[
sg.Text("Scanned ID:", justification="center"),
sg.Text(size=(30, 1), key="-TOUT-", justification="center", background_color="white")
],
[sg.Button("Enter")],
[sg.Button("Exit")],
[sg.Button("Display Log")]
]
layout=[
[
sg.Column(video_frame_column),
sg.VSeperator(),
sg.Column(functional_column, element_justification='c')
]
]
window = sg.Window("Entry/Exit Log Management System", layout, location=(300, 150), resizable=True, finalize=True)
最佳答案
设置元素的选项 expand_x=True
或/和 expand_y=True
,如果需要,也可能为其容器设置相同的设置。
- expand_x:如果为 True,该列将自动在 X 方向扩展以填充可用空间
- expand_y:如果为 True,该列将自动在 Y 方向扩展以填充可用空间
import PySimpleGUI as sg
sg.theme('DefaultNoMoreNagging')
video_frame_column = [
[sg.Text("Scanner", justification="center")],
[sg.Image(filename='d:/images.png', background_color='green', expand_x=True, expand_y=True, key="-IMAGE-")]
]
functional_column = [
[sg.Text("Log Settings", justification="center")],
[
sg.Text("Scanned ID:", justification="center"),
sg.Text(size=(30, 1), key="-TOUT-", justification="center", background_color="white")
],
[sg.Button("Enter")],
[sg.Button("Exit")],
[sg.Button("Display Log")]
]
layout=[
[
sg.Column(video_frame_column, expand_x=True, expand_y=True),
sg.VSeperator(),
sg.Column(functional_column, element_justification='c')
]
]
window = sg.Window("Entry/Exit Log Management System", layout, location=(300, 150), resizable=True, finalize=True)
window.read(close=True)
关于python - 如何在从 PySimpleGUI 库创建的窗口对象中制作可调整大小的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71829302/