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

主框架与侧边栏间出现黑线,求移除方法(附CustomTkinter代码)

移除CustomTkinter侧边栏与主框架间的黑线

运行你提供的CustomTkinter代码时,侧边栏与主内容框架之间出现的黑线,本质是主窗口默认背景色从两个框架的间隙中透出来导致的。CustomTkinter默认主题下主窗口背景为深色,所以间隙显示为黑线。

解决方法

给主窗口设置与相邻框架一致的背景色,消除间隙的视觉差异:

  • 在创建app后,添加一行代码设置主窗口的前景色(背景色)为与主框架或侧边栏边框相同的颜色:app.configure(fg_color="#A9CCE3")

修改后的完整代码

import tkinter as tk
import customtkinter as ctk
import time

# 应用初始化
app = ctk.CTk()
app.title("organize")
app.geometry("900x600")
# 添加此行:设置主窗口背景与主框架一致,消除黑线
app.configure(fg_color="#A9CCE3")

# 侧边栏框架
sidebar = ctk.CTkFrame(master=app, width=200, corner_radius=0, fg_color="#FAFAF5", border_width=10, border_color="#A9CCE3")
sidebar.pack(side='left', fill='y')

# 主内容框架
main_content = ctk.CTkFrame(master=app, fg_color="#A9CCE3")
main_content.pack(side='right', fill='both', expand=True)

# 按钮点击事件
def menu_button_click(button_name):
    print(f"{button_name} clicked!")

# 创建侧边栏按钮
buttons_names = ["Pomodoro", "To-do list", "Stopwatch", "Analisis"]
for name in buttons_names:
    button = ctk.CTkButton(master=sidebar, text=name,
                            command=lambda n=name: menu_button_click(n), corner_radius=8, fg_color="#75A5D0", hover_color="#5084B9", height=50)
    button.pack(pady=20, padx=20, fill='x')

app.mainloop()

其他可选方案

如果不想修改主窗口背景,也可以用grid布局替代pack,通过严格控制列宽消除间隙:

  1. 将侧边栏和主框架的pack替换为grid:
    sidebar.grid(row=0, column=0, sticky="ns")
    main_content.grid(row=0, column=1, sticky="nsew")
    
  2. 设置主窗口的网格列权重,让主框架自动填充剩余空间:
    app.grid_columnconfigure(1, weight=1)
    app.grid_rowconfigure(0, weight=1)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 00:43:10