ふと、MacのTouch Barにかんたんに対応できるのか気になったため、メモ。
PythonのNSTouchBarラッパーのPyTouchBarを見つけた。(本稿執筆時点で)TouchBarを搭載したMacBook Pro(もしくは、シミュレータ上)のTkinterとPyGameでしか動作しないとのこと。PyObjcに依存しており、トラックパッドの振動にも対応。
インストール
pip install PyTouchBar
プロジェクトへ組み込む
ウィンドウをTouchBarの「ホスト」にするために、使用しているグラフィックモジュールに応じて、以下のコマンドでウィンドウを準備する必要がある。(この時点では、ウィンドウはTouchBarをホストする準備ができているが、TouchBarは空でアイテムを追加する必要がある。)
Tkinter
Tkinterを使用している場合は以下の呼び出しが必要。
PyTouchBar.prepare_tk_windows(window1, window2, …)
例
root = Tk()
PyTouchBar.prepare_tk_windows(root)
lbl = Label(root, text="Button")
lbl.pack()
root.mainloop()
// または、Tkの代わりにTouchBarTkを起動する。(Tk()と同じパラメータを使用する)
root = PyTouchBar.TouchBarTk()
lbl = Label(root, text="Button")
lbl.pack()
root.mainloop()
PyGame
ウィンドウのパラメータを設定した直後に、以下の呼び出しが必要。
PyTouchBar.prepare_pygame()
例
pygame.init()
surface = pygame.display.set_mode((100,200))
PyTouchBar.prepare_pygame()
pygame.display.set_caption('Title')
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
break