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

2020款M1 Pro Mac上Tkinter按钮无法显示在Touch Bar的求助

问题

在2020款Apple M1 Pro Mac(带实体Esc按键)上,尝试通过以下代码使用PyTouchBar和Tkinter在Touch Bar显示按钮:

from tkinter import *
import PyTouchBar
PyTouchBar.set_customization_identifier("com.madrau.PyTouchBar.touchbar")

root = Tk()
starter = PyTouchBar.TouchBarItems.Button(title='играть', color=(PyTouchBar.Color.green))
PyTouchBar.set_touchbar([starter])
PyTouchBar.prepare_tk_windows(root)

root.mainloop()

执行后仅弹出名为‘kt’的空白模态窗口,Touch Bar无任何反应。已确认使用PyTouchBar支持的Python 3.11版本,求解决办法。

解决方法
  • 调整实体Esc机型的Touch Bar系统设置

    1. 打开「系统设置」→「键盘」→「键盘快捷键」→「触控栏」
    2. 取消勾选「将F1、F2等键用作标准功能键」,或在应用列表中为当前Python程序单独开启Touch Bar控制权限
    3. 确认「触控栏显示」设置为「应用程序控制」,而非固定的功能键布局
  • 修正代码的绑定顺序与窗口焦点
    原代码中set_touchbar的调用时机错误,需先完成Tk窗口的准备,再绑定Touch Bar,同时要确保窗口获得焦点。修改后的代码:

from tkinter import *
import PyTouchBar

PyTouchBar.set_customization_identifier("com.madrau.PyTouchBar.touchbar")

root = Tk()
root.title("Touch Bar Demo")  # 设置明确窗口标题,替换默认的'kt'

# 先完成Tk窗口的Touch Bar适配准备
PyTouchBar.prepare_tk_windows(root)

# 创建Touch Bar按钮
starter = PyTouchBar.TouchBarItems.Button(title='играть', color=PyTouchBar.Color.green)
# 将Touch Bar绑定到指定的Tk窗口
PyTouchBar.set_touchbar([starter], window=root)

# 强制窗口获取焦点,确保Touch Bar控制权转移
root.focus_force()

root.mainloop()
  • 排查环境与兼容性问题
    1. 执行pip install --upgrade PyTouchBar更新到最新版本
    2. 关闭其他占用Touch Bar的应用(如Safari、Xcode),避免资源冲突
    3. 重启Python解释器后重新运行代码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 09:25:25