如何在 PySimpleGUI 中响应窗口大小调整

nyc*_*nik 4 python pysimplegui

在 PySimpleGUI 中调整窗口大小时如何收到通知?

我有一个可以启用调整大小事件的窗口,但我没有找到在发生调整大小时移动元素的方法,因此当窗口更改大小时,我的窗口将左上角居中重命名为相同的大小。

这是基本代码:

import PySimpleGUI as sg

layout = [[sg.Button('Save')]]
window = sg.Window('Window Title', 
                   layout,
                   default_element_size=(12, 1),
                   resizable=True)  # this is the change

while True:
    event, values = window.read()
    if event == 'Save':
        print('clicked save')

    if event == sg.WIN_MAXIMIZED:  # I just made this up, and it does not work. :)
        window.maximize()

    if event == sg.WIN_CLOSED:
        break
Run Code Online (Sandbox Code Playgroud)

rag*_*ghu 7

将 tkinter 事件添加到窗口会导致窗口大小更改时回调

import PySimpleGUI as sg


layout = [[sg.Button('Save')]]
window = sg.Window('Window Title',
                   layout,
                   default_element_size=(12, 1),
                   resizable=True,finalize=True)  # this is the chang
window.bind('<Configure>',"Event")

while True:
    event, values = window.read()
    if event == 'Save':
        print('clicked save')

    if event == "Event":
        print(window.size)

    if event == sg.WIN_CLOSED:
        print("I am done")
        break
Run Code Online (Sandbox Code Playgroud)

  • +1 提及 window.size。它可用于创建非 tkinter 特定的解决方案(使用 window.read(timeout=100) 并检查大小更改) (2认同)