You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python/PySimpleGUI实现自定义标题栏的窗口最小化

PySimpleGUI自定义标题栏:修复最小化功能问题

要实现隐藏原生标题栏+自定义窗口控制按钮,核心是用对PySimpleGUI的窗口状态控制方法,你当前的错误是把最小化按钮的事件绑定了关闭窗口的逻辑,改成调用window.minimize()即可解决。

以下是完整可运行的示例代码:

import PySimpleGUI as sg

# 自定义标题栏布局:最小化、最大化、关闭按钮
title_bar_layout = [
    sg.Button('🗕', key='-MINIMIZE-', border_width=0, button_color=('white', '#2c3e50')),
    sg.Button('🗖', key='-MAXIMIZE-', border_width=0, button_color=('white', '#2c3e50')),
    sg.Button('🗙', key='-CLOSE-', border_width=0, button_color=('white', '#e74c3c')),
]

# 主窗口布局,把自定义标题栏放在最顶部
layout = [
    title_bar_layout,
    [sg.Text('自定义标题栏测试窗口', pad=(20, 20))],
    [sg.Button('普通按钮')]
]

# 初始化窗口,隐藏原生标题栏
window = sg.Window('自定义标题栏', layout, no_titlebar=True, grab_anywhere=True, size=(400, 300))

while True:
    event, values = window.read()
    if event == sg.WIN_CLOSED or event == '-CLOSE-':
        break
    elif event == '-MINIMIZE-':
        # 调用最小化方法,而非关闭窗口
        window.minimize()
    elif event == '-MAXIMIZE-':
        # 切换窗口最大化/还原状态
        window.toggle_maximize()

window.close()

关键说明:

  • no_titlebar=True:隐藏系统原生标题栏
  • grab_anywhere=True:允许拖动自定义标题栏移动窗口
  • window.minimize():触发窗口最小化,这是你之前缺失的正确方法
  • window.toggle_maximize():一键切换窗口的最大化/还原状态,比单独调用maximize()更实用

内容的提问来源于stack exchange,提问作者PyiPath2022

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 00:25:19