fix: _btn pop font/width/height so CTkButton never gets duplicate kwargs

Made-with: Cursor
This commit is contained in:
Dr Jones
2026-04-15 12:27:17 -07:00
parent 862b07b837
commit 9f32fb3bff

View File

@@ -111,25 +111,26 @@ def main() -> None:
# HELPERS # HELPERS
# ───────────────────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────────────────
def _btn(parent: Any, label: str, cmd: Any, w: int = 80, h: int = 28, **kw: Any) -> ctk.CTkButton: def _btn(parent: Any, label: str, cmd: Any, w: int = 80, h: int = 28, **kw: Any) -> ctk.CTkButton:
# Merge styling; pass font / corner_radius explicitly so nothing duplicates # Pop styling keys so they are never duplicated in **kw (CustomTkinter raises on duplicate font, etc.).
# inside CTkButton (font must not appear in **kwargs passed to the base class). font = kw.pop("font", (FONT, 11))
merged: dict[str, Any] = { fg_color = kw.pop("fg_color", ACCENT)
"fg_color": ACCENT, hover_color = kw.pop("hover_color", ACCENT2)
"hover_color": ACCENT2, text_color = kw.pop("text_color", TEXT)
"text_color": TEXT, corner_radius = kw.pop("corner_radius", 6)
**kw, width = kw.pop("width", w)
} height = kw.pop("height", h)
font = merged.pop("font", (FONT, 11))
corner_radius = merged.pop("corner_radius", 6)
return ctk.CTkButton( return ctk.CTkButton(
parent, parent,
text=label, text=label,
command=cmd, command=cmd,
width=w, width=width,
height=h, height=height,
corner_radius=corner_radius,
font=font, font=font,
**merged, fg_color=fg_color,
hover_color=hover_color,
text_color=text_color,
corner_radius=corner_radius,
**kw,
) )
# ───────────────────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────────────────