tkinterでCAPS Lockキーの状態(ON/OFF)を表示する方法
PythonのGUIライブラリ「tkinter」では、<Lock-KeyPress> と <Lock-KeyRelease> のイベントバインディングを利用することで、CAPS LockキーがONになっているかOFFになっているかを判定できます。
以下のサンプルコードでは、2つのユーザー定義関数 caps_lock_on() と caps_lock_off() を作成し、Lock-KeyPressイベントとLock-KeyReleaseイベントをそれぞれ捕捉して、キーの状態を画面上に表示します。
サンプルコード
# 必要なライブラリをインポート
from tkinter import *
from tkinter import ttk
# tkinterフレームのインスタンスを作成
win = Tk()
# ウィンドウのサイズを指定
win.geometry("700x250")
# ウィンドウタイトルを設定
win.title("CAPS Lock Status")
def caps_lock_on(e):
label_caps.config(text="CAPS Lock is ON")
def caps_lock_off(e):
label_caps.config(text="CAPS Lock is OFF")
label_caps = Label(win, font="Helvetica 15 bold")
label_caps.pack(pady=20)
# イベントと関数をバインド
win.bind("<Lock-KeyPress>", caps_lock_on)
win.bind("<Lock-KeyRelease>", caps_lock_off)
win.mainloop()
実行結果
このプログラムを実行すると、ユーザーがCAPS Lockキーを押すたびに、その時点での状態(ONまたはOFF)がウィンドウ上にリアルタイムで表示されます。


コードのポイント
- win.bind():ウィンドウ全体に対してキーボードイベントを監視します。特定のウィジェットに限定したい場合は、そのウィジェットに対してbindを呼び出すことも可能です。
- <Lock-KeyPress>:CAPS Lockキーが押された瞬間に発生するイベントです。
- <Lock-KeyRelease>:CAPS Lockキーが離された瞬間に発生するイベントです。
- config()メソッド:既存のLabelウィジェットのテキストを動的に変更するために使用しています。
なお、CAPS Lockはトグル式のキーであるため、押して離す動作ごとにON/OFFが切り替わります。この仕組みを応用すれば、Num LockやScroll Lockなど、他のロックキーの状態検出にも同様のアプローチを活用できます。
-
macOS SierraでCaps LockキーをEscキーとして使う方法【簡単設定ガイド】
Webを利用する上で礼儀正しいユーザーなら、Caps Lockキーを使う機会はほとんどないのではないでしょうか。しかし、キーボード上で非常に押しやすい位置にあるこのキーが遊んでいるのはもったいない話です。実は、macOS Sierraでは標準機能だけでCaps LockキーをEsc(エスケープ)キーとして再マップできます。 特に、Touch Bar搭載のMacBook Proユーザーにとっては大きなメリットがあります。これらのモデルには物理的なEscキーがなく、Touch Bar上の「esc」表示領域に置き換えられているため、慣れるまで操作しづらさを感じる人も多いからです。Caps Lock
-
Windows 10でFnキーロックを使う方法|ファンクションキーを切り替える2つの手順
キーボードの最上段には、F1〜F12までのラベルが付いたキーが並んでいます。MacでもPCでも、ほぼすべてのキーボードに搭載されているこの「ファンクションキー」は、単体で押したときと組み合わせで押したときに異なる動作をするのが特徴です。例えば、画面の明るさ調整、音量の上げ下げ、音楽の再生・一時停止など、さまざまな特殊機能を割り当てられています。 通常、これらの特殊機能を使うにはFnキーを押しながら操作する必要があります。しかし、Fnロックを有効にすれば、Caps Lock(英数キー)のようにFnキーを固定でき、押し続けなくてもファンクションキーの特殊機能を直接呼び出せるようになります。本記事で