見出し画像

TkEasyGUI - 目的別ダイアログ完全ガイド

TkEasyGUIのバージョンアップに合わせてNoteの内容をv1.0.37からv1.0.4に更新しました。
以下はダイアログに関するアップデート内容まとめ
・eg.popup_get_fileのfile_typesの型が間違っていたので修正

アップデート内容を素早く確認(v1.0.40)
・特になし

TkEasyGUIのダイアログとポップアップの使い方についてまとめました。
この記事で書かれているTkEasyGUIのバージョンはv1.0.40になります。

TkEasyGUIの使い方については、以下の記事を参照してください。


1. メッセージ表示

ユーザに情報を伝えるめのシンプルなダイアログです。

・popup、popup_ok:基本的なメッセージ表示
・msgbox、show_message、show_info:VB風の情報メッセージ表示
・popup_error:エラーアイコン付きメッセージ
・popup_warning:警告アイコン付きメッセージ
・popup_info:情報アイコン付きメッセージ
・popup_no_buttons:ボタンのない単純なメッセージ表示

一覧

1.1 popup、popup_ok

popup、popup_ok はどちらもポップアップウィンドウにメッセージと「OK」ボタンを表示します。
返値にはボタンのラベルを返します。

eg.popup(message="メッセージの内容の表示", title="ポップアップウィンドウのタイトル")

メッセージが短いとタイトルが見えなくなってしまいます。

アイコンの変更

eg.popup("メッセージの内容の表示メッセージの内容の表示", icon="")

icon をからにすることでアイコンをなくすことができます。

他のアイコンに変更するには「情報(information/info)、警告(warning)、エラー(error)、質問(question/?)」を指定することで変えることができます。

画像ファイルパスを指定することでもアイコンの設定をできます。

def popup(
        message: str,
        title: str = "",

        # 以下の引数は v1.0.26 までに追加されたもの
        size: Union[tuple[int, int], None] = None,
        icon: str = "",
        icon_size: tuple[int, int] = (48, 48),
        window_icon: Optional[str] = None,
        can_copy_message: bool = True,
    ) -> str:

def popup_ok(
        message: str,
        title: str="",

        # 以下の引数は v1.0.26 までに追加されたもの
        size: Union[tuple[int, int], None] = None,
        icon: str = "information",
        icon_size: tuple[int, int] = (48, 48),
        window_icon: Optional[str] = None,
        can_copy_message: bool = True,
    ) -> str:
  • 引数

    • message(必須:str)

      • ポップアップウィンドウに表示するメッセージ

    • title(オプション:str)

      • ポップアップウィンドウのタイトル

    • size(オプション:Union[tuple[int, int], None])

      • ウィンドウサイズの変更(初期値:None)

    • icon(オプション:str)

      • 画像ファイルパスまたは用意されているアイコン名入力(popup_ok初期値:information)

      • 用意されているアイコン

        • 情報(information/info)

        • 警告(warning)

        • エラー(error)

        • 質問(question/?)

    • icon_size(オプション:tuple[int, int])

      • アイコンのサイズ変更(初期値:(48, 48))

    • window_icon(オプション:str)

      • 画像ファイルパスを指定しウィンドウのアイコンの変更(初期値:None)

    • can_copy_message(オプション:bool)

      • 表示メッセージのコピー(初期値:True)

  • 返値

    • str

      • ボタンのラベルを返す("OK"が返されます)


1.2 msgbox、show_message、show_info

情報アイコン付きのVB風メッセージの表示します。

eg.msgbox(message="あなたに情報を伝えます")
def show_message(
        message: str,
        title: Union[str,None] = None
    ) -> None:

def show_info(
        message: str,
        title: Union[str,None] = None
    ) -> None:

def msgbox(
        message: str, # message
        title: Union[str,None] = None
    ) -> None:
  • 引数

    • message(必須:str)

      • ポップアップウィンドウに表示するメッセージ

    • title(オプション:str, None)

      • ポップアップウィンドウのタイトル

  • 返値

    • None

      • 返値はありません


1.3 popup_error

ポップアップウィンドウにメッセージとエラーボタンを表示します。

eg.popup_error(message="エラーメッセージ")

メッセージが短いとタイトルが見えなくなってしまいます。

アイコンの変更

eg.popup_error(message="エラーメッセージ", icon="")

icon をからにすることでアイコンをなくすことができます。

他のアイコンに変更するには「情報(information/info)、警告(warning)、エラー(error)、質問(question/?)」を指定することで変えることができます。

画像ファイルパスを指定することでもアイコンの設定をできます。

TKinterダイアログの表示

eg.popup_error(message="エラーメッセージ", use_tk_dialog=True)

use_tk_dialog 引数を True にすることでTKinterのエラーダイアログにすることができます。

def popup_error(
        message: str, title:
        Union[str,None]=None,

        # 以下の引数は v1.0.26 までに追加されたもの
        size: Union[tuple[int, int], None] = None,
        icon: str = "error",
        icon_size: tuple[int, int] = (48, 48),
        window_icon: Optional[str] = None,  # window icon, specify filename
        can_copy_message: bool = True,
        use_tk_dialog: bool = False,
    ) -> None:
  • 引数

    • message(必須:str)

      • ポップアップウィンドウに表示するメッセージ

    • title(オプション:str, None)

      • ポップアップウィンドウのタイトル

    • size(オプション:Union[tuple[int, int], None])

      • ウィンドウサイズの変更(初期値:None)

    • icon(オプション:str)

      • 画像ファイルパスまたは用意されているアイコン名入力(初期値:error)

      • 用意されているアイコン

        • 情報(information/info)

        • 警告(warning)

        • エラー(error)

        • 質問(question/?)

    • icon_size(オプション:tuple[int, int])

      • アイコンのサイズ変更(初期値:(48, 48))

    • window_icon(オプション:str)

      • 画像ファイルパスを指定しウィンドウのアイコンの変更(初期値:None)

    • can_copy_message(オプション:bool)

      • 表示メッセージのコピー(初期値:True)

    • use_tk_dialog(オプション:bool)

      • TKinterのエラーダイアログに変更(初期値:False)

  • 返値

    • None

      • 返値はありません


1.4 popup_warning

警告アイコン付きメッセージの表示します。

eg.popup_warning(message="エラーメッセージ")

Windowsでは警告アイコンが表示されません

アイコンの変更

eg.popup_warning(message="警告メッセージ", icon="")

icon をからにすることでアイコンをなくすことができます。

他のアイコンに変更するには「情報(information/info)、警告(warning)、エラー(error)、質問(question/?)」を指定することで変えることができます。

画像ファイルパスを指定することでもアイコンの設定をできます。

TKinterダイアログの表示

eg.popup_warning(message="警告メッセージ", use_tk_dialog=True)

use_tk_dialog 引数を True にすることでTKinterの警告ダイアログにすることができます。

def popup_warning(
        message: str,
        title: Union[str,None]=None,

        # 以下の引数は v1.0.26 までに追加されたもの
        size: Union[tuple[int, int], None] = None,
        icon: str = "warning",
        icon_size: tuple[int, int] = (48, 48),
        window_icon: Optional[str] = None,
        can_copy_message: bool = True,
        use_tk_dialog: bool = False,
    ) -> None:
  • 引数

    • message(必須:str)

      • ポップアップウィンドウに表示するメッセージ

    • title(オプション:str, None)

      • ポップアップウィンドウのタイトル

    • size(オプション:Union[tuple[int, int], None])

      • ウィンドウサイズの変更(初期値:None)

    • icon(オプション:str)

      • 画像ファイルパスまたは用意されているアイコン名入力(初期値:warning)

      • 用意されているアイコン

        • 情報(information/info)

        • 警告(warning)

        • エラー(error)

        • 質問(question/?)

    • icon_size(オプション:tuple[int, int])

      • アイコンのサイズ変更(初期値:(48, 48))

    • window_icon(オプション:str)

      • 画像ファイルパスを指定しウィンドウのアイコンの変更(初期値:None)

    • can_copy_message(オプション:bool)

      • 表示メッセージのコピー(初期値:True)

    • use_tk_dialog(オプション:bool)

      • TKinterのエラーダイアログに変更(初期値:False)

  • 返値

    • None

      • 返値はありません


1.5 popup_info

警告アイコン付きメッセージの表示します。

関数名がinfoとありますが、内部処理に間違いがあるからか警告アイコンになっています。

eg.popup_info(message="情報メッセージ")

アイコンの変更

eg.popup_info(message="情報メッセージ", icon="")

icon をからにすることでアイコンをなくすことができます。

他のアイコンに変更するには「情報(information/info)、警告(warning)、エラー(error)、質問(question/?)」を指定することで変えることができます。

画像ファイルパスを指定することでもアイコンの設定をできます。

TKinterダイアログの表示

eg.popup_info(message="情報メッセージ", use_tk_dialog=True)

use_tk_dialog 引数を True にすることでTKinterの情報ダイアログにすることができます。

def popup_info(
        message: str,
        title: Union[str,None]=None
    ) -> None:
  • 引数

    • message(必須:str)

      • ポップアップウィンドウに表示するメッセージ

    • title(オプション:str, None)

      • ポップアップウィンドウのタイトル

  • 返値

    • None

      • 返値はありません


1.6 popup_no_buttons

ボタンの無いポップアップウィンドウにメッセージの表示します。

eg.popup_no_buttons(message="メッセージ")

メッセージが短いとタイトルが見えなくなってしまいます。

アイコンの追加

eg.popup_no_buttons("情報メッセージ", icon="information")

icon 引数で使用できる「情報(information/info)、警告(warning)、エラー(error)、質問(question/?)」に変更するとアイコンを変更することができます。

画像ファイルパスを指定することでもアイコンの設定をできます。

def popup_no_buttons(
def popup_no_buttons(
        message: str,
        title: str="",

        # 以下の引数は v1.0.26 までに追加されたもの
        size: Union[tuple[int, int], None] = None,
        icon: str = "",
        icon_size: tuple[int, int] = (48, 48),
        window_icon: Optional[str] = None,
        can_copy_message: bool = True,
    ) -> None:
  • 引数

    • message(必須:str)

      • ポップアップウィンドウに表示するメッセージ

    • title(オプション:str)

      • ポップアップウィンドウのタイトル

    • size(オプション:Union[tuple[int, int], None])

      • ウィンドウサイズの変更(初期値:None)

    • icon(オプション:str)

      • 画像ファイルパスまたは用意されているアイコン名入力

      • 用意されているアイコン

        • 情報(information/info)

        • 警告(warning)

        • エラー(error)

        • 質問(question/?)

    • icon_size(オプション:tuple[int, int])

      • アイコンのサイズ変更(初期値:(48, 48))

  • 返値

    • None

      • 返値はありません


2. 確認ダイアログ

ユーザに選択肢を提示し、決定を求める際のダイアログです。

・popup_yes_no:はい/いいえの選択
・popup_cancel:キャンセルの選択
・popup_ok_cancel:OK/キャンセルの選択
・popup_yes_no_cancel:はい/いいえ/キャンセルの選択
・confirm:確認ダイアログ
・ask_yes_no、ask_ok_cancel、ask_retry_cancel:Tkinter直接使用の確認ダイアログ

一覧

2.1 popup_yes_no

ポップアップウィンドウにメッセージと「はい」「いいえ」ボタンを表示します。
返値には、yes_value または no_value の値を返します。

eg.popup_yes_no(message="リンゴは好きですか?")

メッセージが短いとタイトルが見えなくなってしまいます。

ボタンラベルの変更

eg.popup_yes_no(message="リンゴは好きですか?", yes_label="大好き", no_label="大嫌い")
  • ボタンのラベル yes_value を「大好き」no_value を「大嫌い」に変更しています。

  • 「大好き」を押したときの返値は yes_value に設定されている、文字列「Yes(初期値)」が返されます。

  • 「大嫌い」を押したときの返値は no_value に設定されている、文字列「No(初期値)」が返されます。

アイコンの変更

eg.popup_yes_no(message="リンゴは好きですか?", icon="")

icon をからにすることでアイコンをなくすことができます。

他のアイコンに変更するには「情報(information/info)、警告(warning)、エラー(error)、質問(question/?)」を指定することで変えることができます。

画像ファイルパスを指定することでもアイコンの設定をできます。

def popup_yes_no(
        message: str,
        title: Union[str,None] = None,
        yes_label: Union[str,None]=None,
        no_label: Union[str,None]=None,
        yes_value: str = "Yes",
        no_value: str = "No",

        # 以下の引数は v1.0.26 までに追加されたもの
        size: Union[tuple[int, int], None] = None,
        icon: str = "?",
        icon_size: tuple[int, int] = (48, 48),
        window_icon: Optional[str] = None,  # window icon, specify filename
        can_copy_message: bool = True,
    ) -> str:
  • 引数

    • message(必須:str)

      • ポップアップウィンドウに表示するメッセージ

    • title(オプション:str, None)

      • ポップアップウィンドウのタイトル

    • yes_label(オプション:str, None)

      • Yes ボタンラベルのカスタマイズ

    • no_label(オプション:str, None)

      • No ボタンラベルのカスタマイズ

    • yes_value(オプション:str)

      • Yes ボタンの返値のカスタマイズ(初期値:Yes)

    • no_value(オプション:str)

      • No ボタンの返値のカスタマイズ(初期値:No)

    • size(オプション:Union[tuple[int, int], None])

      • ウィンドウサイズの変更(初期値:None)

    • icon(オプション:str)

      • 画像ファイルパスまたは用意されているアイコン名入力(初期値:?)

      • 用意されているアイコン

        • 情報(information/info)

        • 警告(warning)

        • エラー(error)

        • 質問(question/?)

    • icon_size(オプション:str)

      • アイコンのサイズ変更(初期値:(48, 48))

    • window_icon(オプション:str)

      • 画像ファイルパスを指定しウィンドウのアイコンの変更(初期値:None)

    • can_copy_message(オプション:str)

      • 表示メッセージのコピー(初期値:True)

  • 返値

    • str

      • 選択したボタンに対応する文字列(yes_value または no_value)を返す


2.2 popup_cancel

ポップアップウィンドウにメッセージと「Cancel」ボタンを表示します。

eg.popup_cancel(message="実行のキャンセル")

メッセージが短いとタイトルが見えなくなってしまいます。

アイコンの変更

eg.popup_cancel(message="実行のキャンセル", icon="")

icon をからにすることでアイコンをなくすことができます。

他のアイコンに変更するには「情報(information/info)、警告(warning)、エラー(error)、質問(question/?)」を指定することで変えることができます。

画像ファイルパスを指定することでもアイコンの設定をできます。

def popup_cancel(
        message: str,
        title: str="",

        # 以下の引数は v1.0.26 までに追加されたもの
        size: Union[tuple[int, int], None] = None,
        icon: str = "information",
        icon_size: tuple[int, int] = (48, 48),
        window_icon: Optional[str] = None,  # window icon, specify filename
        can_copy_message: bool = True,
    ) -> str:
  • 引数

    • message(必須:str)

      • ポップアップウィンドウに表示するメッセージ

    • title(オプション:str)

      • ポップアップウィンドウのタイトル

    • size(オプション:Union[tuple[int, int], None])

      • ウィンドウサイズの変更(初期値:None)

    • icon(オプション:str)

      • 画像ファイルパスまたは用意されているアイコン名入力(初期値:information)

      • 用意されているアイコン

        • 情報(information/info)

        • 警告(warning)

        • エラー(error)

        • 質問(question/?)

    • icon_size(オプション:tuple[int, int])

      • アイコンのサイズ変更(初期値:(48, 48))

    • window_icon(オプション:str)

      • 画像ファイルパスを指定しウィンドウのアイコンの変更(初期値:None)

    • can_copy_message(オプション:bool)

      • 表示メッセージのコピー(初期値:True)

  • 返値

    • str

      • ボタンのラベルを返す("Cancel"が返されます)


2.3 popup_ok_cancel

ポップアップウィンドウにメッセージと「OK」「キャンセル」ボタンを表示します。
返値には、ok_value または cancel_value の値を返します。

eg.popup_ok_cancel(message="この設定で間違いないですか?")

メッセージが短いとタイトルが見えなくなってしまいます。

ボタンラベルの変更

eg.popup_ok_cancel(message="この設定で間違いないですか?", ok_label="間違いない", cancel_label="ちょっと待った")
  • ボタンのラベル yes_value を「間違いない」no_value を「ちょっと待った」に変更しています。

  • 「間違いない」を押したときの返値は yes_value に設定されている、文字列「OK(初期値)」が返されます。

  • 「ちょっと待った」を押したときの返値は no_value に設定されている、文字列「Cancel(初期値)」が返されます。

アイコンの変更

eg.popup_ok_cancel(message="この設定で間違いないですか?", icon="")

icon をからにすることでアイコンをなくすことができます。

他のアイコンに変更するには「情報(information/info)、警告(warning)、エラー(error)、質問(question/?)」を指定することで変えることができます。

画像ファイルパスを指定することでもアイコンの設定をできます。

def popup_ok_cancel(
        message: str,
        title: Union[str,None] = None,
        ok_label: Union[str, None] = None,
        cancel_label: Union[str, None] = None,
        ok_value: str = "OK",
        cancel_value: str = "Cancel",

        # 以下の引数は v1.0.26 までに追加されたもの
        size: Union[tuple[int, int], None] = None,
        icon: str = "?",
        icon_size: tuple[int, int] = (48, 48),
        window_icon: Optional[str] = None,
        can_copy_message: bool = True,
    ) -> str:
  • 引数

    • message(必須:str)

      • ポップアップウィンドウに表示するメッセージ

    • title(オプション:str, None)

      • ポップアップウィンドウのタイトル

    • ok_label(オプション:str, None)

      • OK ボタンラベルのカスタマイズ

    • cancel_label(オプション:str, None)

      • Cancel ボタンラベルのカスタマイズ

    • ok_value(オプション:str)

      • OK ボタンの返値のカスタマイズ(初期値:OK)

    • cancel_value(オプション:str)

      • Cancel ボタンの返値のカスタマイズ(初期値:Cancel)

    • size(オプション:Union[tuple[int, int], None])

      • ウィンドウサイズの変更(初期値:None)

    • icon(オプション:str)

      • 画像ファイルパスまたは用意されているアイコン名入力(初期値:?)

      • 用意されているアイコン

        • 情報(information/info)

        • 警告(warning)

        • エラー(error)

        • 質問(question/?)

    • icon_size(オプション:tuple[int, int])

      • アイコンのサイズ変更(初期値:(48, 48))

    • window_icon(オプション:str)

      • 画像ファイルパスを指定しウィンドウのアイコンの変更(初期値:None)

    • can_copy_message(オプション:bool)

      • 表示メッセージのコピー(初期値:True)

  • 返値

    • str

      • 選択したボタンに対応する文字列(ok_valueまたはcancel_value)を返す


2.4 popup_yes_no_cancel

ポップアップウィンドウにメッセージと「はい」「いいえ」「キャンセル」ボタンを表示します。
返値には、yes_value または no_label または cancel_value の値を返します。

eg.popup_yes_no_cancel(message="ドキュメントが変更されています。保存しますか?", title="保存確認")

メッセージが短いとタイトルが見えなくなってしまいます。

ボタンラベルの変更

eg.popup_yes_no_cancel(message="ドキュメントが変更されています。保存しますか?", title="保存確認", yes_label="保存")
  • ボタンのラベル(yes_label)を変更しています。

  • 「保存」を押したときの返値は yes_value に設定されている、文字列「Yes(初期値)」が返されます。

アイコンの変更

eg.popup_yes_no_cancel(message="ドキュメントが変更されています。保存しますか?", title="保存確認", icon="")

icon をからにすることでアイコンをなくすことができます。

他のアイコンに変更するには「情報(information/info)、警告(warning)、エラー(error)、質問(question/?)」を指定することで変えることができます。

画像ファイルパスを指定することでもアイコンの設定をできます。

def popup_yes_no_cancel(
        message: str,
        title: Union[str, None] = None,
        yes_label: Union[str, None] = None,
        no_label: Union[str, None] = None,
        cancel_label: Union[str, None] = None,
        yes_value: str = "Yes",
        no_value: str = "No",
        cancel_value: str = "Cancel"

        # 以下の引数は v1.0.26 までに追加されたもの
        size: Union[tuple[int, int], None] = None,
        icon: str = "?",
        icon_size: tuple[int, int] = (48, 48),
        window_icon: Optional[str] = None,  # window icon, specify filename
        can_copy_message: bool = True,
        ) -> str:
  • 引数

    • message(必須:str)

      • ポップアップウィンドウに表示するメッセージ

    • title(オプション:str, None)

      • ポップアップウィンドウのタイトル

    • yes_label(オプション:str, None)

      • Yes ボタンラベルのカスタマイズ

    • no_label(オプション:str, None)

      • No ボタンラベルのカスタマイズ

    • cancel_label(オプション:str, None)

      • Cancel ボタンラベルのカスタマイズ

    • yes_value(オプション:str)

      • Yes ボタンの返値のカスタマイズ(初期値:Yes)

    • no_value(オプション:str)

      • No ボタンの返値のカスタマイズ(初期値:No)

    • cancel_value(オプション:str)

      • Cancel ボタンの返値のカスタマイズ(初期値:Cancel)

    • size(オプション:Union[tuple[int, int], None])

      • ウィンドウサイズの変更(初期値:None)

    • icon(オプション:str)

      • 画像ファイルパスまたは用意されているアイコン名入力(初期値:?)

      • 用意されているアイコン

        • 情報(information/info)

        • 警告(warning)

        • エラー(error)

        • 質問(question/?)

    • icon_size(オプション:tuple[int, int])

      • アイコンのサイズ変更(初期値:(48, 48))

    • window_icon(オプション:str)

      • 画像ファイルパスを指定しウィンドウのアイコンの変更(初期値:None)

    • can_copy_message(オプション:bool)

      • 表示メッセージのコピー(初期値:True)

  • 返値

    • str

      • 選択したボタンに対応する文字列(yes_value または no_label または cancel_value)を返す


2.5 confirm

ポップアップウィンドウにメッセージと「はい」と「いいえ」ボタンを表示します。
返値には、True または Fales を返します。

eg.confirm(question="選択したアイテムを削除してもよろしいですか?", title="削除確認")

メッセージが短いとタイトルが見えなくなってしまいます。

def confirm(
        question: str,
        title: Union[str,None] = None
    ) -> bool:
  • 引数

    • question(必須:str)

      • ポップアップウィンドウに表示するメッセージ

    • title(オプション:str, None)

      • ポップアップウィンドウのタイトル

  • 返値

    • bool

      • 「はい」を選択した場合に True を返し、「いいえ」を選択した場合に False を返す


2.6 ask_yes_no

TKinterを使ったポップアップウィンドウにアイコン、メッセージ、ボタンを表示します。
返値は True または Fales を返します。

ask_yes_noは、「?」アイコンと「はい(Y)」「いいえ(N)」ボタンの表示

eg.ask_yes_no(message="変更を保存しますか?")
def ask_yes_no(
        message: str,
        title: str="Question"
    ) -> bool:
  • 引数

    • message(必須:str)

      • ポップアップウィンドウに表示するメッセージ

    • title(オプション:str)

      • ポップアップウィンドウのタイトル(初期値:Question)

  • 返値

    • bool

      • 「はい」を選択した場合に True を返し、「いいえ」を選択した場合に False を返す


2.7 ask_ok_cancel

TKinterを使ったポップアップウィンドウにアイコン、メッセージ、ボタンを表示します。
返値は True または Fales を返します。

ask_ok_cancelは、「?」アイコンと「OK」「キャンセル」ボタンの表示

eg.ask_ok_cancel(message="アプリケーションを終了しますか?")
def ask_ok_cancel(
        message: str,
        title: str="Question"
    ) -> bool:
  • 引数

    • message(必須:str)

      • ポップアップウィンドウに表示するメッセージ

    • title(オプション:str)

      • ポップアップウィンドウのタイトル(初期値:Question)

  • 返値

    • bool

      • 「OK」を選択した場合に True を返し、「キャンセル」を選択した場合に False を返す


2.8 ask_retry_cancel

TKinterを使ったポップアップウィンドウにアイコン、メッセージ、ボタンを表示します。
返値は True または Fales を返します。

ask_retry_cancelは、警告アイコンと「再試行(R)」「キャンセル」ボタンの表示

eg.ask_retry_cancel(message="再試行しますか?")
def ask_retry_cancel(
        message: str,
        title: str="Question"
    ) -> bool:
  • 引数

    • message(必須:str)

      • ポップアップウィンドウに表示するメッセージ

    • title(オプション:str)

      • ポップアップウィンドウのタイトル(初期値:Question)

  • 返値

    • bool

      • 「リトライ」を選択した場合に True を返し、「キャンセル」を選択した場合に False を返す


3. 入力ダイアログ

ユーザからテキストや数値などの入力を受け取るためのダイアログです。

・popup_get_text、popup_input:一行テキスト入力
・input:汎用入力ダイアログ
・input_number:数値専用入力
・popup_memo、popup_scrolled:複数行テキスト入力
・popup_get_form:複数項目入力フォーム
・popup_listbox:リストボックスによる選択

一覧

3.1 popup_get_text

ポップアップウィンドウにメッセージ、テキストフィールド、「OK」「キャンセル」ボタンを表示します。
返値には、入力したテキストを返します。
また、「キャンセル」を押した場合は None を返します。

eg.popup_get_text(message="あなたの名前を入力してください")

メッセージが短いとタイトルが見えなくなってしまいます。

デフォルトのテキストとフォントの変更

eg.popup_get_text(
    message="あなたの名前を入力してください",
    title="ユーザ情報",
    default="田中",
    font=("Arial", 13)
)

default 引数に入力にデフォルトで「田中」を入れています。
fant 引数にフォントとザイズを指定しています。

ウィンドウアイコンの変更

eg.popup_get_text(message="あなたの名前を入力してください", window_icon="画像ファイルパス")

画像ファイルパスを指定することでウィンドウアイコンを変更することができます。

def popup_get_text(
        message: str,
        title: Union[str,None] = None,
        default: Union[str, None] = None,
        default_text: Union[str, None] = None,
        font: Optional[FontType]=None,

        # 以下の引数は v1.0.26 までに追加されたもの
        size: Union[tuple[int, int], None] = None,
        window_icon: Optional[str] = None,
    ) -> Union[str, None]:
  • 引数

    • message(必須:str)

      • ポップアップウィンドウに表示するメッセージ

    • title(オプション:str, None)

      • ポップアップウィンドウのタイトル

    • default(オプション:str, None)

      • テキストフィールドにあらかじめ記入しておくテキスト

    • default_text(オプション:str, None)

      • defaultと同じ

    • font(オプション:FontType)

      • フォントとサイズの指定

    • size(オプション:Union[tuple[int, int], None])

      • ウィンドウサイズの変更(初期値:None)

    • window_icon(オプション:str)

      • 画像ファイルパスを指定しウィンドウのアイコンの変更(初期値:None)

  • 返値

    • str, None

      • 入力したテキストを文字列として返す

      • キャンセルされた場合は None を返す


3.2 popup_input

ポップアップウィンドウにメッセージ、テキストフィールド、「OK」「キャンセル」ボタンを表示します。
返値には、入力したテキストを返します。
また、「キャンセル」を押した場合は cancel_value の値を返します。

cancel_value には初期値に None が指定されています。

eg.popup_input(message="あなたの出身地を入力してください")

メッセージが短いとタイトルが見えなくなってしまいます。

デフォルトのテキストとボタンラベルの変更

eg.popup_input(
    message="あなたの出身地を入力してください",
    title="ユーザ情報",
    default="沖縄",
    ok_label="送信"
)

ウィンドウアイコンの変更

eg.popup_input(message="あなたの出身地を入力してください", window_icon="画像ファイルパス")

画像ファイルパスを指定することでウィンドウアイコンを変更することができます。

def popup_input(
        message: str,
        title: Optional[str] = None,
        default: str = "",
        ok_label: Optional[str] = None,
        cancel_label: Optional[str] = None,
        cancel_value: Any = None,
        only_number: bool = False,
        font: Optional[FontType] = None,

        # 以下の引数は v1.0.26 までに追加されたもの
        size: Union[tuple[int, int], None] = None,
        window_icon: Optional[str] = None,
    ) -> Union[str, float, None]:
  • 引数

    • message(必須:str)

      • ポップアップウィンドウに表示するメッセージ

    • title(オプション:str)

      • ポップアップウィンドウのタイトル

    • default(オプション:str)

      • テキストフィールドにあらかじめ記入しておくテキスト

    • ok_label(オプション:str)

      • OK ボタンラベルのカスタマイズ

    • cancel_label(オプション:str)

      • Cancel ボタンラベルのカスタマイズ

    • cancel_value(オプション:Any)

      • Cancel ボタンの返値のカスタマイズ(初期値:None)

    • only_number(オプション:bool)

      • 数字だけの送信を受け付ける(初期値:False)

    • font(オプション:FontType)

      • フォントとサイズの指定

    • size(オプション:Union[tuple[int, int], None])

      • ウィンドウサイズの変更(初期値:None)

    • window_icon(オプション:str)

      • 画像ファイルパスを指定しウィンドウのアイコンの変更(初期値:None)

  • 返値

    • str, float, None

      • 入力したテキストまたは数字を返す

      • only_number が True の場合、数値(浮動小数点)を返す

      • キャンセルされた場合は、cancel_value で設定された値を返す(デフォルトでは None を返す)


3.3 input

input は popup_input の簡易版に当たります。

ポップアップウィンドウにメッセージ、テキストフィールド、「OK」「キャンセル」ボタンを表示します。
返値には、入力したテキストを返します。
また、「キャンセル」を押した場合は None 返されます。

eg.input(message="好きなアニメを1つ入力してください")

メッセージが短いとタイトルが見えなくなってしまいます。

ウィンドウアイコンの変更

eg.input(message="好きなアニメを1つ入力してください", window_icon="画像ファイルパス")

画像ファイルパスを指定することでウィンドウアイコンを変更することができます。

def input(
        message: str,
        title: Union[str,None] = None,
        default: str = "",
        only_number: bool = False,
        window_icon: Optional[str] = None,
    ) -> Union[str, float, None]:
  • 引数

    • message(必須:str)

      • ポップアップウィンドウに表示するメッセージ

    • title(オプション:str, None)

      • ポップアップウィンドウのタイトル

    • default(オプション:str)

      • テキストフィールドにあらかじめ記入しておくテキスト

    • only_number(オプション:bool)

      • 数字だけの送信を受け付ける(初期値:False)

    • window_icon(オプション:str)

      • 画像ファイルパスを指定しウィンドウのアイコンの変更(初期値:None)

  • 返値

    • str, float, None

      • 入力したテキストまたは数字を返す

      • only_number が True の場合、数値(浮動小数点)を返す

      • キャンセルされた場合は None を返す


3.4 input_number

ポップアップウィンドウにメッセージ、テキストフィールド、「OK」「キャンセル」ボタンを表示します。
返値には、入力したテキストを返します。
また、「キャンセル」を押した場合は None 返されます。

eg.input_number(message="年齢を入力してください")

メッセージが短いとタイトルが見えなくなってしまいます。

ウィンドウアイコンの変更

eg.input_number(message="年齢を入力してください", window_icon="画像ファイルパス")

画像ファイルパスを指定することでウィンドウアイコンを変更することができます。

def input_number(
        message: str,
        title: Union[str,None] = None,
        default: str = "",
        window_icon: Optional[str] = None,
    ) -> Union[float, None]:
  • 引数

    • message(必須:str)

      • ポップアップウィンドウに表示するメッセージ

    • title(オプション:str, None)

      • ポップアップウィンドウのタイトル

    • default(オプション:str)

      • テキストフィールドにあらかじめ記入しておくテキスト

    • window_icon(オプション:str)

      • 画像ファイルパスを指定しウィンドウのアイコンの変更(初期値:None)

  • 返値

    • float, None

      • 入力したテキストを数値(浮動小数点)として返す

      • キャンセルされた場合は None を返す


3.5 popup_memo、popup_scrolled

popup_memo は popup_scrolled の別名のようなもので、異なるデフォルトサイズを提供することが主な違いです。

ポップアップウィンドウにメッセージ、テキストボックス、「OK」「キャンセル(Cancel)」ボタンを表示します。
返値には、入力したテキストを返します。
また、「キャンセル(Cancel)」を押した場合は None 返されます。

eg.popup_memo(message="")

メッセージが短いとタイトルが見えなくなってしまいます。

テキストボックスのサイズ変更と読み取り専用

eg.popup_memo(message="デフォルトメッセージ", size=(80,5), readonly=True)

メッセージにテキストを入れると、テキストボックスに書かれた状態になります。
readonly を有効にするとテキストボックスの読み取り専用になっています。

ラベルの追加

eg.popup_memo(message="", header="ラベル文章")

テキストボックスの上にラベルを追加することができます。

def popup_scrolled(
        message: str,
        title: Union[str, None] = None,
        size: tuple[int, int] = (40, 5),
        readonly: bool = False,
        
        # 以下の3つの引数は v1.0.26 までに追加されたもの
        header: str = "",
        resizable: bool = True,
        window_icon: Optional[str] = None,

        ok_label: Union[str, None] = None,
        cancel_label: Union[str, None] = None,
        cancel_value: Union[str, None] = None,
        font: Union[FontType, None] = None,
    ) -> Union[str, None]:

def popup_memo(
        message: str,
        title: Union[str, None] = None,
        size: tuple[int,int] = (60, 8),
        readonly: bool = False,

        # 以下の3つの引数は v1.0.26 までに追加されたもの
        header: str = "",
        resizable: bool = True,
        window_icon: Optional[str] = None,

        ok_label: Union[str, None] = None,
        cancel_label: Union[str, None] = None,
        cancel_value: Union[str,None] = None,
        font: Union[FontType, None] = None
    ) -> Union[str, None]:
  • 引数

    • message(必須:str)

      • ポップアップウィンドウに表示するメッセージ

    • title(オプション:str)

      • ポップアップウィンドウのタイトル

    • size(オプション:tuple[int, int])

      • テキストボックスの大きさの変更(初期値:(40, 5))

    • readonly(オプション:bool)

      • 読み取り専用(初期値:False)

    • ok_label(オプション:str)

      • OK ボタンの返値のカスタマイズ

    • cancel_label(オプション:str)

      • Cancel ボタンラベルのカスタマイズ

    • cancel_value(オプション:str)

      • Cancel ボタンの返値のカスタマイズ

    • font(オプション:FontType)

      • フォントとサイズの指定

    • header(オプション:str)

      • テキストボックス上部にラベルの追加(初期値:なし)

    • resizable(オプション:bool)

      • ウィンドウサイズの変更(初期値:True)

    • window_icon(オプション:str)

      • 画像ファイルパスを指定しウィンドウのアイコンの変更(初期値:None)

  • 返値

    • str, None

      • 入力したテキストを文字列として返す

      • キャンセルされた場合は None を返す


3.6 popup_get_form

ポップアップウィンドウに項目と入力フィールドと 「OK」「キャンセル」ボタンを表示します。
返値には、辞書型で {フォームの項目:入力した値} と返されます。
また、「キャンセル」を押した場合は None 返されます。

eg.popup_get_form(form_items=["名前", "メールアドレス"])

メッセージが短いとタイトルが見えなくなってしまいます。

複雑なフォーム

form_items = [
    # [ラベル, 初期値または選択, フォームのタイプ]
    ["お名前", "", "text"],
    ["メールアドレス", "", "text"],
    ["年齢", 20, "number"],
    ["職業", ["会社員", "学生", "自営業", "その他"], "combo"],
    ["興味のある分野", ["技術", "デザイン", "マーケティング"], "list"]
]
eg.popup_get_form(form_items=form_items, title="ユーザー登録")

二次元リストを用いて複雑なフォームを作っています。
それぞれにのリストの構成はインデックス0にラベル、インデックス1に初期値または選択するリスト、インデックス2にフォームのタイプを入れます。

フォームタイプの項目一覧

・text:文字の入力
・number:数字の入力
・password:入力文字をアスタリスクに変換
・combo:複数の選択肢
・list:複数の選択肢
・date:カレンダー
・file:単一のファイル
・files:複数のファイル
・folder:単一のフォルダ
・color:カラーパレット

def popup_get_form(
        form_items: list[Union[str, tuple[str, Any], tuple[str, Any, str]]],
        title: str = "Form",
        size: Union[tuple[int, int], None] = None,
        window_icon: Optional[str] = None,
    ) -> Union[dict[str, Any], None]:
  • 引数

    • form_items(必須:list[Union[str, tuple[str, Any], tuple[str, Any, str]]])

      • フォームの項目リスト

    • title(オプション:str)

      • ポップアップウィンドウのタイトル

    • size(オプション:Union[tuple[int, int], None])

      • ウィンドウサイズの変更(初期値:None)

    • window_icon(オプション:str)

      • 画像ファイルパスを指定しウィンドウのアイコンの変更(初期値:None)

  • 返値

    • dict, None:辞書たは None

      • 入力した値を辞書として返す

      • キャンセルされた場合は None を返す


3.7 popup_listbox

ポップアップウィンドウに項目リストと 「OK」「Cancel」ボタンを表示します。
返値には、選択した項目を返します。
また、「Cancel」を押した場合は None 返されます。

eg.popup_listbox(values=["バナナ", "リンゴ", "イチゴ", "ナシ"], message="好きなフルーツの選択")

メッセージが短いとタイトルが見えなくなってしまいます。

初めの選択肢の指定

fruits = ["バナナ", "リンゴ", "イチゴ", "ナシ"]
eg.popup_listbox(values=fruits, message="好きなフルーツの選択", default_value=fruits[1])
  • default_value を使い、初めに選択されているものを指定しています。

def popup_listbox(
        values: list[str],  # list of items
        message: str = "",
        title: str = "",
        size: tuple[int, int] = (20, 7),
        font: Union[FontType, None] = None,
        default_value: Union[str, None] = None,  # default value
        multiple: bool = False,  # multiple selection

        # 以下の引数は v1.0.26 までに追加されたもの
        resizable: bool = True,
        window_icon: Optional[str] = None,
    ) -> Union[str, None]:
  • 引数

    • values(必須:list[str])

      • リストの項目

    • message(オプション:str)

      • ポップアップウィンドウに表示するメッセージ

    • title(オプション:str)

      • ポップアップウィンドウのタイトル

    • size(オプション:tuple[int, int])

      • リストボックスの大きさを変更(初期値:(20, 7))

    • font(オプション:FontType, None)

      • フォントとサイズの指定

    • default_value(オプション:str, None)

      • values の初めに選択されている項目

    • multiple(オプション:bool)

      • 複数選択(初期値:False)

    • resizable(オプション:bool)

      • ウィンドウサイズの変更(初期値:True)

    • window_icon(オプション:str)

      • 画像ファイルパスを指定しウィンドウのアイコンの変更(初期値:None)

  • 返値

    • str, None

      • 選択した項目を文字列として返す

      • multiple が True の場合、選択された項目のリストを返す

      • キャンセルされた場合は None を返す


4. カスタマイズ可能なダイアログ

汎用性のあるダイアログです。

・popup_buttons:最も柔軟なダイアログ

一覧

4.1 popup_buttons

ポップアップウィンドウにメッセージとデフォルトで「OK」「Cancel」ボタンを表示します。
返値はボタンのラベルです。
また、auto_close_duration を0より大きい数字にしている場合は timeout_key の文字列か返値になります。

eg.popup_buttons(message="設定を保存しますか?")

メッセージが短いとタイトルが見えなくなってしまいます。

ボタンを増やす

eg.popup_buttons(message="どのテーマを適用しますか?", buttons=["ライト", "ダーク", "システム"])

buttons にリストの値を増やすことでボタンが増えます。

timeout_key を使って自動クローズ後のイベント

引数 auto_close_duration に0より大きい数字を入れる必要があります。

result = eg.popup_buttons(
    message="どのテーマを適用しますか?",
    buttons=["ライト", "ダーク", "システム"],
    auto_close_duration=5,
    timeout_key="-MY_TIMEOUT-"
)

# タイムアウト時の処理
if result == "-MY_TIMEOUT-":
    eg.print(f"タイムアウトしました:{result}")
else:
    eg.print(f"選択されたボタン: {result}")

この例では、timeout_keyを"-MY_TIMEOUT-"に設定し、5秒以内にボタンがクリックされなかった場合、resultの値は"-MY_TIMEOUT-"となり、「タイムアウトしました」と表示されます。

5秒以内にボタンがクリックされなかった場合
ボタンがクリックされた場合

アイコンの追加

eg.popup_buttons("アイコンテスト", size=(300, 150), icon="ComfyUI_00788_.png")

eg.popup_buttons("アイコンテスト", size=(300, 150), icon="information")

eg.popup_buttons("アイコンテスト", size=(300, 150), icon="warning")

eg.popup_buttons("アイコンテスト", size=(300, 150), icon="error")

eg.popup_buttons("アイコンテスト", size=(300, 150), icon="question")

icon 引数で使用できる「情報(information/info)、警告(warning)、エラー(error)、質問(question/?)」に変更するとアイコンを変更することができます。

画像ファイルパスを指定することでもアイコンの設定をできます。

Windowsでは警告アイコンが表示されません

メッセージのコピー

eg.popup_buttons("アイコンテスト")

メッセージが表示されているエリアを左クリックをすることで「メーっセージをコピー」が表示されクリックすることでコピーすることができます。

def popup_buttons(
        message: str,
        title: Union[str,None] = None,
        buttons: list[str] = ["OK", "Cancel"],
        auto_close_duration: int = -1,
        timeout_key: str="-TIMEOUT-",
        non_blocking: bool = False,
        default: str = '',
        size: Union[tuple[int, int], None] = None,
        icon: str = "",
        icon_size: tuple[int, int] = (48, 48),
        window_icon: Optional[str] = None,
        can_copy_message: bool = True,

        # 以下の引数は v1.0.37 に追加されたもの
        use_ttk_buttons: bool = POPUP_TTK_BUTTONS,
        auto_locale: bool = True,
    ) -> str:

POPUP_TTK_BUTTONS はポップアップに関するオプションです

  • 引数

    • message(必須:str)

      • ポップアップウィンドウに表示するメッセージ

    • title(オプション:str, None)

      • ポップアップウィンドウのタイトル

    • buttons(オプション:list[str])

      • ボタンを増やす(初期値:["OK", "Cancel"])

    • auto_close_duration(オプション:int)

      • ミリ秒でウィンドウを自動クローズ(初期値:-1)

    • timeout_key(オプション:str)

      • タイムアウト時に返される文字列(初期値:-TIMEOUT-)

    • non_blocking(オプション:bool)

      • ポップアップを表示しながら、バックグラウンドで処理を実行(初期値:False)

    • default(オプション:str)

      • テキストフィールドにあらかじめ記入しておくテキスト

    • size(オプション:Union[tuple[int, int], None])

      • ウィンドウサイズの変更(初期値:None)

    • icon(オプション:str)

      • 画像ファイルパスまたは用意されているアイコン名入力

      • 用意されているアイコン

        • 情報(information/info)

        • 警告(warning)

        • エラー(error)

        • 質問(question/?)

    • icon_size(オプション:tuple[int, int])

      • アイコンのサイズ変更(初期値:(48, 48))

    • window_icon(オプション:str)

      • 左上のウィンドウのアイコンの変更(初期値:None)

    • can_copy_message(オプション:bool)

      • 表示メッセージのコピー(初期値:True)

    • use_ttk_buttons(オプション:bool)

      • ttk.Buttonを使う(初期値:True)

    • auto_locale(オプション:bool)

      • buttonsのラベルに合わせて横幅を自動で調整(初期値:True)

      • ※ v1.0.37では、想定している動作はしません。

  • 返値

    • str

      • 選択したボタンのラベルを文字列として返す

      • タイムアウトした場合は、timeout_key で指定された値を返す

non_blocking:引数はありますが実装されていません


5. ファイル・フォルダ操作

ファイルシステムとの対話を行うためのダイアログです。

・popup_get_file:ファイル選択
・popup_get_folder:フォルダ選択

一覧

5.1 popup_get_file

ファイル選択のダイアログを表示します。
返値には、ファイルパスを返します。

eg.popup_get_file("")

複数ファイル選択

eg.popup_get_file("複数ファイル選択", multiple_files=True)

multiple_files を有効にすることで複数のファイルパスをタプルで返します。

名前を付けてファイルパスの取得

eg.popup_get_file("", save_as=True, default_extension="txt")
  • save_as を有効にすることで、選択ディレクトリにファイル名をつなげたファイルパスを返します。

  • default_extension に保存する拡張子を指定るることで、ファイル名に拡張子を付けずに保存ファイルパスを取得できます。

def popup_get_file(
        message: str="",
        title: Union[str, None] = None,
        initial_folder: Union[str, None] = None,
        save_as: bool = False, # show `save as` dialog
        multiple_files: bool = False, # can select multiple files
        file_types: Optional[FileTypeList] = None,
        default_extension: Union[str, None] = None,
        no_window: Union[bool, None] = None,
        **kw
    ) -> Union[str, tuple[str], None]:
  • 引数

    • message(オプション:str)

      • ポップアップウィンドウに表示するメッセージ

    • title(オプション:str, None)

      • ポップアップウィンドウのタイトル

    • initial_folder(オプション:str, None)

      • 開く初期フォルダの指定

    • save_as(オプション:bool)

      • 名前を付けて保存ダイアログに変える(初期値:False)

    • multiple_files(オプション:bool)

      • 複数のファイルの選択(初期値:False)

    • file_types(オプション:Optional[FileTypeList])

      • ファイルタイプの指定(初期値:None)

      • 例:(("PNG Files", "*.png"))

    • default_extension(オプション:str, None)

      • 保存ファイルの拡張子指定

    • no_window(オプション:bool, None)

      • タイトルバーは表示/非表示(PySimpleGUIの互換性)

  • 返値

    • str, tuple[str], None

      • 選択したファイルパスを文字列として返す

      • multiple_files が True の場合、文字列のタプルを返す

      • キャンセルされた場合は None を返す

no_window は TkEasyGUI では現在使えないです


5.2 popup_get_folder

ディレクトリ選択のダイアログを表示します。
返値には、ディレクトリパスを返します。

eg.popup_get_folder("")
def popup_get_folder(
        message: str = "",
        title: Union[str, None] = None,
        default_path: Union[str, None] = None,
        no_window: Union[bool, None] = None,
        **kw
    ) -> Union[str, None]:
  • 引数

    • message(オプション:str)

      • ポップアップウィンドウに表示するメッセージ

    • title(オプション:str, None)

      • ポップアップウィンドウのタイトル

    • default_path(オプション:str, None)

      • 開く初期ディレクトリの指定

    • no_window(オプション:bool, None)

      • タイトルバーは表示/非表示(PySimpleGUIの互換性)

  • 返値

    • str, None

      • 選択したディレクトリパスを文字列として返す

      • キャンセルされた場合は None を返す

no_window は TkEasyGUI では現在使えないです


6. 特殊な入力

日付や色など、特定の形式のデータを入力するためのダイアログです。

・popup_get_date:カレンダーによる日付選択
・popup_color:色選択
・popup_image:画像表示

一覧

6.1 popup_get_date

ポップアップウィンドウにカレンダーを表示します。
返値には、datetime型または None を返します。

eg.popup_get_date()

日付の指定

str_date = '2011/11/24'
mydate = datetime.strptime(str_date, '%Y/%m/%d')
eg.popup_get_date(current_date=mydate)

日付のフォーマットの変更

eg.popup_get_date(date_format="%Y★%m★%d")
def popup_get_date(
        message: str = "",
        title: Union[str, None] = None,
        current_date: Union[datetime, None] = None,
        font: Union[tuple[str, int], None] = None,
        ok_label: Union[str, None] = None,
        cancel_label: Union[str, None] = None,
        date_format: Union[str, None] = None,
        close_when_date_chosen: bool = False,
        sunday_first: bool = False,
        window_icon: Optional[str] = None,
    ) -> Union[datetime, None]:
  • 引数

    • message(オプション:str)

      • ポップアップウィンドウに表示するメッセージ

    • title(オプション:str, None)

      • ポップアップウィンドウのタイトル

    • current_date(オプション:datetime, None)

      • 開く日付の指定

    • font(オプション:tuple[str, int], None)

      • フォントとサイズの指定

    • ok_label(オプション:str)

      • OK ボタンラベルのカスタマイズ

    • cancel_label(オプション:str, None)

      • Cancel ボタンラベルのカスタマイズ

    • date_format(オプション:str, None)

      • 日付ラベルのカスタマイズ

    • close_when_date_chosen(オプション:bool)

      • 日付を選択すると閉じる(初期値:False)

    • sunday_first(オプション:bool)

      • 日曜始まり(初期値:False)

    • window_icon(オプション:str)

      • 画像ファイルパスを指定しウィンドウのアイコンの変更(初期値:None)

  • 返値

    • datetime, None

      • 選択した日付を datetime オブジェクトとして返す

      • キャンセルされた場合は None を返す


6.2 popup_color

色選択ダイアログを表示します。
返値には、指定したフォーマットで選択した色を返します。

eg.popup_color()

format 引数に「html、rgb、tuple」を指定することで返値のフォーマットが変更されます。
赤色を使い各フォーマットを出力しました。

  • html:#FF0000

  • rgb:FF0000

  • tuple:(255, 0, 0)

def popup_color(
        title: str = "",
        default_color: Union[str, None] = None,
        format: ColorFormatType = "html",
    ) -> Union[str, tuple[int,int,int], None]:
  • 引数

    • title(オプション:str)

      • ポップアップウィンドウのタイトル

    • default_color(オプション:str, None)

      • 初期の色の指定

    • format(オプション:ColorFormatType)

      • 返す色のフォーマット(html、rgb、tuple)の指定(初期値:html)

  • 返値

    • str, tuple[int,int,int], None

      • 選択した色をformatで指定した形式で返す

      • キャンセルされた場合は None を返す


6.3 popup_image

ポップアップウィンドウに画像と「OK」「キャンセル」ボタンを表示します。
返値には OK または None を返します。
または、指定(ok_value、cancel_value)した値を返します。

eg.popup_image(message="", image_path="画像パス")

バイナリデータから画像の表示

import TkEasyGUI as eg
from io import BytesIO

# デスクトップ全体のスクリーンショット
img = eg.screenshot()
resized_img = img.resize((img.width // 2, img.height // 2))

with BytesIO() as img_bytes:
    resized_img.save(img_bytes, format='PNG')
    img_bytes = img_bytes.getvalue()

eg.popup_image(message="", image_path=img_bytes, size=resized_img.size)

なぜ、image_path 引数に img_bytes を渡しているのか
画像を表示する際に eg.Image クラスを使っており、その引数の順序と名前が一致していないため

スクリーンショットをバイナリデータにした際に、サイズの指定をしないと一部しか表示されません。

サイズ指定なし
サイズ指定あり
def popup_image(
        message: str,
        title: Union[str,None] = None,
        image_path: Union[str,None] = None,
        image_data: Union[bytes,None] = None,
        size: tuple[int,int] = (400, 300),
        ok_label: Union[str, None] = None,
        ok_value: str = "OK",
        cancel_label: Union[str, None] = None,
        cancel_value: Union[str, None] = None,
        font: Union[FontType, None] = None,
        window_icon: Optional[str] = None,
    ) -> Union[str, None]:
  • 引数

    • message(必須:str)

      • ポップアップウィンドウに表示するメッセージ

    • title(オプション:str, None)

      • ポップアップウィンドウのタイトル

    • image_path(オプション:str, None)

      • 画像のファイルパス

    • image_data(オプション:bytes, None)

      • 画像のデータ(バイト列)

    • size(オプション:tuple[int,int])

      • 画像キャンパスのサイズ

    • ok_label(オプション:str, None)

      • OK ボタンラベルのカスタマイズ

    • ok_value(オプション:str)

      • OK ボタンの返値のカスタマイズ(初期値:OK)

    • cancel_label(オプション:str, None)

      • Cancel ボタンラベルのカスタマイズ

    • cancel_value(オプション:str, None)

      • Cancel ボタンの返値のカスタマイズ(初期値:None)

    • font(オプション:FontType, None)

      • フォントとサイズの指定

    • window_icon(オプション:str)

      • 画像ファイルパスを指定しウィンドウのアイコンの変更(初期値:None)

  • 返値

    • str, None

      • OKボタンがクリックされた場合は ok_value を返し、キャンセルボタンがクリックされた場合は cancel_value を返します。

      • キャンセルされた場合は、cancel_value で設定された値を返す(デフォルトでは None を返す)


7. 通知

ユーザに一時的な情報を表示するためのダイアログです。

・popup_notify:通知表示
・send_notification_mac:Mac用通知
・send_notification_win:Windows用通知
・popup_auto_close:自動で閉じる通知
・popup_no_wait、popup_non_blocking:非ブロッキング通知

一覧

7.1 popup_notify

自動で OS にあった通知を表示します。
返値は None

eg.popup_notify(message="")

# 以下のものは popup_notify 内部で使われている関数
# eg.send_notification_mac(message="") # Mac用
# eg.send_notification_win(message="") # Windows用
Windowsの通知
def popup_notify(
        message: str,
        title: str=""
    ) -> None:
  • 引数

    • message(必須:str)

      • ポップアップウィンドウに表示するメッセージ

    • title(オプション:str)

      • 通知のタイトル

  • 返値

    • None

      • 返値はありません


7.2 popup_auto_close

popup_buttons を自動で閉じるものに特化したポップアップウィンドウです。

指定した時間で閉じるポップアップウィンドウにメッセージと「OK」「Cancel」ボタンを表示します。
返値はボタンのラベルです。
また、auto_close_duration を0より大きい数字かつ、ボタンがクリックされなかった場合、timeout_key の文字列(-TIMEOUT-)が返値になります。

eg.popup_auto_close("三秒後に閉じます。")

アイコンの変更

eg.popup_auto_close("三秒後に閉じます。", icon="")

icon をからにすることでアイコンをなくすことができます。

他のアイコンに変更するには「情報(information/info)、警告(warning)、エラー(error)、質問(question/?)」を指定することで変えることができます。

画像ファイルパスを指定することでもアイコンの設定をできます。

def popup_auto_close(
        message: str,
        title: str="",
        auto_close_duration: int = 3,
        buttons: list[str] = ["OK", "Cancel"],
        timeout_key="-TIMEOUT-",

        # 以下の引数は v1.0.26 までに追加されたもの
        size: Union[tuple[int, int], None] = None,
        icon: str = "information",
        icon_size: tuple[int, int] = (48, 48),
        window_icon: Optional[str] = None,
        can_copy_message: bool = True,
    ) -> str:
  • 引数

    • message(必須:str)

      • ポップアップウィンドウに表示するメッセージ

    • title(オプション:str)

      • ポップアップウィンドウのタイトル

    • auto_close_duration(オプション:int)

      • ミリ秒でウィンドウを自動クローズ(初期値:3)

    • buttons(オプション:list[str])

      • ボタンを増やす(初期値:["OK", "Cancel"])

    • timeout_key(オプション:str)

      • タイムアウト時に返される文字列(初期値:-TIMEOUT-)

    • size(オプション:Union[tuple[int, int], None])

      • ウィンドウサイズの変更(初期値:None)

    • icon(オプション:str)

      • 画像ファイルパスまたは用意されているアイコン名入力(初期値:information)

      • 用意されているアイコン

        • 情報(information/info)

        • 警告(warning)

        • エラー(error)

        • 質問(question/?)

    • icon_size(オプション:tuple[int, int])

      • アイコンのサイズ変更(初期値:(48, 48))

    • window_icon(オプション:str)

      • 画像ファイルパスを指定しウィンドウのアイコンの変更(初期値:None)

    • can_copy_message(オプション:bool)

      • 表示メッセージのコピー(初期値:True)

  • 返値

    • str

      • 選択したボタンのラベルを文字列として返す

      • タイムアウトした場合は、timeout_key で指定された値を返す


7.3 popup_no_wait

ポップアップウィンドウにメッセージと「OK」「Cancel」ボタンを表示します。
返値にはボタンのラベルを返します。

eg.popup_no_wait(message="メッセージ")

メッセージが短いとタイトルが見えなくなってしまいます。

アイコンの変更

eg.popup_no_wait(message="メッセージ", icon="")

icon 引数をからにすることでアイコンをなくすことができます。

他のアイコンに変更するには「情報(information/info)、警告(warning)、エラー(error)、質問(question/?)」を指定することで変えることができます。

画像ファイルパスを指定することでもアイコンの設定をできます。

def popup_no_wait(
        message: str,
        title: str="",

        # 以下の引数は v1.0.26 までに追加されたもの
        size: Union[tuple[int, int], None] = None,
        icon: str = "information",
        icon_size: tuple[int, int] = (48, 48),
        window_icon: Optional[str] = None,
        **kw
    ) -> str:
  • 引数

    • message(必須:str)

      • ポップアップウィンドウに表示するメッセージ

    • title(オプション:str)

      • ポップアップウィンドウのタイトル

    • **kw(オプション)

      • popup_auto_close の引数を渡せる

    • size(オプション:Union[tuple[int, int], None])

      • ウィンドウサイズの変更(初期値:None)

    • icon(オプション:str)

      • 画像ファイルパスまたは用意されているアイコン名入力(初期値:information)

      • 用意されているアイコン

        • 情報(information/info)

        • 警告(warning)

        • エラー(error)

        • 質問(question/?)

    • icon_size(オプション:tuple[int, int])

      • アイコンのサイズ変更(初期値:(48, 48))

    • window_icon(オプション:str)

      • 画像ファイルパスを指定しウィンドウのアイコンの変更(初期値:None)

  • 返値

    • str

      • 選択したボタンのラベルを文字列として返す


7.4 popup_non_blocking

完全な実装がまだされていません。

ポップアップウィンドウにメッセージと「OK」ボタンを表示します。
返値はボタンのラベルです。

イメージとしては、ポップアップウィンドウを表示しながら次の処理をすることができる。

以下のコードは実装されたときに使えるかもしれないもの

import TkEasyGUI as eg
import time

# ポップアップを表示して即座に次の処理へ
eg.popup_non_blocking(message="バックグラウンドで処理中です...", title="処理中")

# ポップアップが表示されている間も処理が継続される
for i in range(5):
    print(f"処理中... {i+1}秒経過")
    time.sleep(1)

# 処理完了後に別のポップアップを表示
eg.popup("処理が完了しました", "完了")

メッセージが短いとタイトルが見えなくなってしまいます。

アイコンの追加

eg.popup_non_blocking("バックグラウンドで処理中です...", "処理中", icon="info")

icon 引数で使用できる「情報(information/info)、警告(warning)、エラー(error)、質問(question/?)」に変更するとアイコンを変更することができます。

画像ファイルパスを指定することでもアイコンの設定をできます。

def popup_non_blocking(
        message: str,
        title: str="",
        auto_close_duration: int = -1

        # 以下の引数は v1.0.26 までに追加されたもの
        size: Union[tuple[int, int], None] = None,
        icon: str = "",
        icon_size: tuple[int, int] = (48, 48),
        window_icon: Optional[str] = None,
        can_copy_message=True,
    ) -> str:
  • 引数

    • message(必須:str)

      • ポップアップウィンドウに表示するメッセージ

    • title(オプション:str)

      • ポップアップウィンドウのタイトル

    • auto_close_duration(オプション:int)

      • ミリ秒でウィンドウを自動クローズ(初期値:-1)

    • size(オプション:Union[tuple[int, int], None])

      • ウィンドウサイズの変更(初期値:None)

    • icon(オプション:str)

      • 画像ファイルパスまたは用意されているアイコン名入力

      • 用意されているアイコン

        • 情報(information/info)

        • 警告(warning)

        • エラー(error)

        • 質問(question/?)

    • icon_size(オプション:tuple[int, int])

      • アイコンのサイズ変更(初期値:(48, 48))

    • window_icon(オプション:str)

      • 左上のウィンドウのアイコンの変更(初期値:None)

    • can_copy_message(オプション:bool)

      • 表示メッセージのコピー(初期値:True)

  • 返値

    • str

      • 選択したボタンのラベルを文字列として返す


8. ユーティリティ

その他の便利な機能を提供するメソッドです。

・print:ポップアップウィンドウへの出力
・is_mac、is_win:プラットフォーム判定

一覧

8.1 print

ポップアップウィンドウにメッセージと「OK」ボタンを表示します。

eg.print("ポップアップメッセージです")

通常のprint関数を呼び出し

eg.print("print関数の呼び出し", no_window=True)

引数に no_window=True 追加することで、通常のprint関数を呼び出しコマンドプロンプトに出力する。

出力に icecream を使っています

def print(*args,**kw) -> None:
  • 引数

    • *args(オプション)

      • ポップアップウィンドウに表示するメッセージ

    • **kw(オプション)

      • print関数の呼び出し

  • 返値

    • None

      • 返値はありません


8.2 is_mac、is_win

利用 OS の確認
返値は真偽値で返されます。

eg.is_mac()
eg.is_win()

出力に icecream を使っています。

def is_mac() -> bool:

def is_win() -> bool:
  • 返値

    • bool


9. その他

9.1 ポップアップに関するオプション設定

# ポップアップオプションのデフォルト値
POPUP_AUTO_SCREENSHOT = False # 自動スクリーンショット
POPUP_AUTO_SCREENSHOT_DURATION = 500  # 自動クローズ時間(ミリ秒)
POPUP_AUTO_SCREENSHOT_FILENAME = "screenshot.png" # スクリーンショットのファイル名
POPUP_OK_BUTTON_WIDTH = 12 # OKボタンの幅サイズ
POPUP_CANCEL_BUTTON_WIDTH = 9 # Cancelボタンの幅サイズ
POPUP_TTK_BUTTONS = True # ttkボタンを使用

def popup_set_options(
    auto_screenshot: bool = POPUP_AUTO_SCREENSHOT,
    auto_screenshot_duration: int = POPUP_AUTO_SCREENSHOT_DURATION,
    auto_screenshot_filename: str = POPUP_AUTO_SCREENSHOT_FILENAME,
    ok_button_width: int = POPUP_OK_BUTTON_WIDTH,
    cancel_button_width: int = POPUP_CANCEL_BUTTON_WIDTH,
    ttk_buttons: bool = POPUP_TTK_BUTTONS,
) -> None:
  • 引数

    • auto_screenshot(オプション:bool)

      • 自動スクリーンショット(デフォルト:False)

    • auto_screenshot_duration(オプション:int)

      • 自動クローズ時間(ミリ秒)(デフォルト:500)

      • ポップアップウィンドウが表示されてからの経過時間が、指定された時間を超えた場合にスクリーンショットを撮るタイマー

    • auto_screenshot_filename(オプション:str)

      • スクリーンショットのファイル名(デフォルト:screenshot.png)

    • ok_button_width(オプション:int)

      • OKボタンの幅サイズ(デフォルト:12)

    • cancel_button_width(オプション:int)

      • Cancelボタンの幅サイズ(デフォルト:9)

    • ttk_buttons(オプション:bool)

      • ttkボタンを使用(デフォルト:True)


関連記事

マガジンに TkEasyGUI に関する記事をまとめているのでよかったら見てください。


TkEasyGUI Github
TkEasyGUI ダイアログドキュメント


Note更新ログ

2025年10月8日

v1.0.37の内容からv1.0.40に更新内容

ダイアログ系の主なアップデート内容だけを記載しています。
・eg.popup_get_fileのfile_typesの型が間違っていたので修正

2025年5月2日

v1.0.36の内容からv1.0.37に更新内容

ダイアログ系の主なアップデート内容だけを記載しています。
v1.0.37
・popup_xxx()のボタンをttk.Buttonにする
・eg.popup_buttonsのauto_close_durationマニュアルの間違いを修正

2025年4月22日

v1.0.21の内容からv1.0.36に更新内容

ダイアログ系の主なアップデート内容だけを記載しています。
v1.0.32
・popup_xxx に window_icon プロパティを追加

v1.0.26
・popup_memo で Window sizeが不正な問題を修正
・popup_memoのテキストボックスの上に説明テキストを表示可能にする
・popup_memoでWindowのタイトルが空になる

v1.0.22
・popup_xxx系のsizeプロパティの追加
・popup_xxx系iconが使えるように修正
・popup_memo リサイズ可能にの修正
・popup_listbox リサイズを可能に
・popup_notify Windows通知の修正

v1.0.23
・popup_xxx系メッセージをコピーできるようになった


いいなと思ったら応援しよう!