Pythonでメッセージボックスを実装するときに絶対に書いておきたい設定



このようなメッセージボックスを実装するメリットは、
PyAutoGUIのような、実行するときにPC操作を一時的に中断する必要があるプログラムを定期実行(例えば、毎朝6:00に実行)するときに使うと便利ですよね。

ただ、問題があります。

それは、このメッセージボックスが、最前面に出てこないことです。

作業中に最前面に出てこないと定期実行していても実行が開始していることに気が付きません。

そこで、今回はこれを実現する方法をメモしておきます。
ぜひ、ご活用ください。

from tkinter import Tk,messagebox

    root = Tk()
    root.attributes('-topmost', True)
    root.withdraw()
    ret = messagebox.askyesno('確認', 'Twitter投稿を開始しますか?')
    if ret == True:
    .....
  

「…..」の部分は「はい」を押したときに実行される部分になります。

重要なのは、

   root = Tk()
    root.attributes('-topmost', True)
    root.withdraw()

この部分で、メッセージボックスを最前面に出てくるようにしてくれます。

これで、メッセージボックスに気が付くようになります。

付録

次のような関数のファイルを作っておくと便利です。
ファイル名:MesAlarmBox.py

from tkinter import Tk,messagebox


def MessageForefront(MesAlarm):
    root = Tk()
    root.attributes('-topmost', True)
    root.withdraw()
    ret = messagebox.askyesno('確認', MesAlarm)
    return ret

def MessageForefrontShowinfo(MesAlarmShowinfo):
    root = Tk()
    root.attributes('-topmost', True)
    root.withdraw()
    messagebox.showinfo('確認', MesAlarmShowinfo)

これを、使って次のmain.pyのファイルをアレンジします。

from MesAlarmBox import MessageForefront, MessageForefrontShowinfo


ret = MessageForefront('Twitter投稿を開始しますか?')
if ret == True:
  ......
    ......
    ......
MessageForefrontShowinfo('job実行を終了します。')

if文の中の実行が始まる前に、確認のメッセージボックスが出ますし、
実行が終了したら、実行完了のメッセージボックスが出ます。

以外と便利です。



この記事が気に入ったらサポートをしてみませんか?