Предпосылка:
Python предлагает несколько вариантов разработки графического интерфейса пользователя (GUI). Из всех методов графического интерфейса tkinter является наиболее часто используемым методом. Это стандартный интерфейс Python для инструментария Tk GUI, поставляемого вместе с Python. Python с tkinter-это самый быстрый и простой способ создания приложений с графическим интерфейсом. Создание графического интерфейса с помощью tkinter-простая задача.
При создании графического интерфейса потребуется выполнить несколько работ/операций на бэкэнде. Предположим, мы хотим выполнить 4 операции одновременно. Проблема здесь в том, что каждая операция выполняется одна за другой. Во время выполнения одной операции окно графического интерфейса также не будет перемещаться, и именно поэтому нам нужна многопоточность. Обе реализации приведены ниже, что, очевидно, поможет лучше понять их различия.
Without Threading
Работа без потоков приводит к задержке процесса. Кроме того, окно не будет перемещаться до тех пор, пока не будет выполнено полное выполнение.
Подход
- Создайте Обычное Окно Настройки
- Добавить кнопку с командой
- Выполнить Tkinter
Программа:
# Import Module
from tkinter import *
import time
from threading import *
# Create Object
root = Tk()
# Set geometry
root.geometry("400x400")
def work():
print("sleep time start")
for i in range(10):
print(i)
time.sleep(1)
print("sleep time stop")
# Create Button
Button(root, text="Click Me", command=work).pack()
# Execute Tkinter
root.mainloop()
Выход:
With Threading
Подход
- Создайте Обычное Окно Настройки
- Кнопка Добавить с командой для нарезания резьбы
- Выполнить Tkinter
Программа:
# Import Module
from tkinter import *
import time
from threading import *
# Create Object
root = Tk()
# Set geometry
root.geometry("400x400")
# use threading
def threading():
# Call work function
t1=Thread(target=work)
t1.start()
# work function
def work():
print("sleep time start")
for i in range(10):
print(i)
time.sleep(1)
print("sleep time stop")
# Create Button
Button(root,text="Click Me",command = threading).pack()
# Execute Tkinter
root.mainloop()