デスクトップアプリケーションのフォームでは、入力エラー時にフォーカスをエラー箇所に移動することがあります。
このページでは入力エリアのフォーカス移動について解説しています。
開発環境のバージョンは以下です。
Python 3.11.4
PySimpleGUI 4.60.5
set_focus()メソッド
フーカスを移動するには、set_focus()メソッドを使用します。
構文: set_focus()
サンプル画面
以下の画面でテストしました。
画面ではわかりにくいですが、ボタンクリックでフォーカス移動します。
<画面での動き>
「入力1」ボタンで上のエリアにフォーカス移動
「入力2」ボタンで下のエリアにフォーカス移動
コーディングサンプル
以下がコーディングサンプルです。
下線部がフォーカスを移動するコマンドです。
import PySimpleGUI as sg
layout = [
[sg.B("入力1",key="b1"),sg.I(key="in1")],
[sg.B("入力2",key="b2"),sg.I(key="in2")]
]
window = sg.Window("サンプル",layout)
while True:
e,v = window.read()
if e == "b1":
window["in1"].set_focus()
if e == "b2":
window["in2"].set_focus()
if e == None:
break
window.close()