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

如何检测窗口Fullscreen属性状态并实现全屏与窗口模式切换?

问题分析与解决方案

你的代码出现“点击全屏切换按钮后,窗口短暂切换到窗口模式又立刻回到全屏”的问题,核心问题出在Ifullscreen函数的逻辑错误:你直接判断函数对象Fulwin(函数对象在Python中永远为真),且没有实际调用切换函数;另外最小化按钮的实现也不符合预期,当前只是关闭全屏,并非真正将窗口最小化到任务栏。

修正后的代码

import tkinter.messagebox
from tkinter import *
import customtkinter
from PIL import Image, ImageTk
import sys

customtkinter.set_appearance_mode("dark")  # 模式: System(默认), Light, Dark
customtkinter.set_default_color_theme("dark-blue")  # 主题: blue, dark-blue, green

window = customtkinter.CTk()
window.title("To-Do List")
# window.overrideredirect(1)

# 切换全屏/窗口模式
def toggle_fullscreen():
    # 获取当前全屏状态,取反后设置
    current_state = window.attributes('-fullscreen')
    window.attributes('-fullscreen', not current_state)

# 最小化窗口到任务栏
def minimize_window():
    window.iconify()

# 退出程序
def exit_app():
    sys.exit()

# 全屏切换按钮(原Maximize按钮)
maximize_image = ImageTk.PhotoImage(Image.open("GUI/Maximize.png"))
maximize_button = customtkinter.CTkButton(
    master=window, image=maximize_image, text="", command=toggle_fullscreen,
    width=30, height=30, fg_color='#1a1a1a', hover_color='#1a1a1a'
)
maximize_button.place(x=1450, y=10)

# 最小化按钮
minimize_image = ImageTk.PhotoImage(Image.open("GUI/minimize.png"))
minimize_button = customtkinter.CTkButton(
    master=window, image=minimize_image, text="", command=minimize_window,
    width=30, height=30, fg_color='#1a1a1a', hover_color='#1a1a1a'
)
minimize_button.place(x=1400, y=10)

# 退出按钮
exit_image = ImageTk.PhotoImage(Image.open("GUI/exit.png"))
exit_button = customtkinter.CTkButton(
    master=window, image=exit_image, text="", command=exit_app,
    width=30, height=30, fg_color='#1a1a1a', hover_color='#1a1a1a'
)
exit_button.place(x=1500, y=10)

window.mainloop()

关键修改说明

  • 全屏状态检测与切换:通过window.attributes('-fullscreen')获取当前窗口的全屏状态(返回布尔值True/False),然后取反设置新状态,实现一键切换。
  • 最小化功能修正:使用window.iconify()替代关闭全屏,真正将窗口最小化到系统任务栏。
  • 简化函数逻辑:去掉冗余的Fulwin和Nonwin函数,直接在切换函数中完成状态判断与设置,避免逻辑混乱。
  • 命名规范优化:函数名改为更直观的命名,如toggle_fullscreen、minimize_window,提高代码可读性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 12:15:41