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

如何消除Raspberry Pi上tkinter全屏窗口的1像素白边?

解决Tkinter全屏窗口白边问题

要消除全屏Tkinter窗口的1像素白边,核心是去掉窗口和Canvas组件的默认边框、高亮效果,以下是修改后的代码及说明:

修改后的代码

import tkinter as tk

_root = tk.Tk()
_root.withdraw()

def display(win):
    win.create_oval(60,60,210,210,fill="green")

class GraphWin(tk.Canvas):
    def __init__(self, title="Graphics Window"):
        boss = tk.Toplevel(_root)
        # 全屏属性 + 移除窗口边框相关配置
        boss.attributes('-fullscreen', True)
        boss.config(borderwidth=0, highlightthickness=0)
        
        # Canvas初始化时清除边框和高亮厚度
        tk.Canvas.__init__(self, boss, background="black", 
                           borderwidth=0, highlightthickness=0)
        self.background = "black"
        self.pack(fill=tk.BOTH, expand=True)
        
        boss.lift()
        boss.update_idletasks()  # 确保窗口样式配置生效

window = GraphWin()
display(window)
_root.mainloop()

关键修改点

  • 给Toplevel窗口设置borderwidth=0和highlightthickness=0:消除窗口本身的默认边框与聚焦高亮效果
  • 给Canvas添加borderwidth=0和highlightthickness=0参数:去掉Canvas组件自带的边框和选中高亮,避免出现白边
  • 用boss.update_idletasks()替代_root.update():更精准地触发窗口配置更新,确保所有样式生效

如果上述修改后仍有白边,可尝试添加boss.overrideredirect(True)(该属性会移除窗口标题栏和控制按钮,与-fullscreen兼容),进一步强制窗口无边框。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 01:27:17