\

Pythonでは、GUIアプリケーションを作成する際にTkinterというライブラリがよく使用されます。しかし、Tkinterで作成したGUIアプリケーションでは、一つの処理が終了するまで他の処理が反応しないという問題があります。これはPythonが逐次処理形式であるためです。

この問題を解決するためには、Pythonの並列処理機能を利用することが考えられます。Pythonの並列処理は、threadingというモジュールを用いて実現できます。このモジュールを用いることで、一つの処理が終了するのを待たずに、別の処理を同時に実行することが可能になります。

以下に、PythonとTkinterを用いて並列処理を実装する基本的なコードを示します。

import tkinter as tk
import threading
import time

def start():
    thread = threading.Thread(target=count)
    thread.start()

def count():
    global flg
    i = 0
    while True:
        if flg == False:
            print("動作を途中停止します。")
            flg = True
            break
        else:
            print("カウント", i)
            time.sleep(2)
            i += 1

def stop():
    global flg
    flg = False

root = tk.Tk()
flg = True
btn1 = tk.Button(text="開始", command=start)
btn1.grid(row=0, column=0)
btn2 = tk.Button(text="停止", command=stop)
btn2.grid(row=1, column=0)
root.mainloop()

このコードでは、start関数を呼び出すと新しいスレッドが生成され、そのスレッド上でcount関数が実行されます。そして、stop関数を呼び出すと、フラグがFalseになり、count関数のループから抜け出すようになっています。このようにして、GUIに強制停止ボタンを実装することができます。

以上がPythonとTkinterを用いた並列処理の基本的な実装方法です。この知識を活用して、より高度なGUIアプリケーションを作成してみてください。.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です