У меня проблема с некоторым кодом. Так что я могу запустить приложение, но я не могу остановить его, как только оно запускается. Я думаю, что мне нужно многопоточность, но у меня нет возможности этого сделать. Любая помощь будет оценена
from tkinter import Tk
import sys
import tkinter as tk
import tkinter.ttk as ttk
from tkinter import messagebox
import schedule
import time
from Tweets import Tweets
class MyFirstGUI:
def __init__(self):
pass
def masterframe(self, master, ):
master = master
master.title("A simple Sentiment Analyzer")
_bgcolor = '#4285F4' # X11 color: 'gray85'
_fgcolor = '#e3f2fd' # X11 color: 'black'
_compcolor = '#d9d9d9' # X11 color: 'gray85'
_ana1color = '#d9d9d9' # X11 color: 'gray85'
_ana2color = '#ececec' # Closest X11 color: 'gray92'
style = ttk.Style()
if sys.platform == "win32":
style.theme_use('winnative')
style.configure('.', background=_bgcolor)
style.configure('.', foreground=_fgcolor)
style.configure('.', font="Arial")
style.map('.', background=[('selected', _compcolor), ('active', _ana2color)])
master.geometry("600x450+650+150")
master.configure(background="#d9d9d9")
return master
я пропустил кнопки. Остальная часть кода выглядит следующим образом
def job_get_tweet(self):
# api-endpoint
base_url = "http://192.168.0.17/Sentitweet/"
tweet_word = key_input.get()
tweet = Tweets()
tweet.retrieve_tweet(base_url, tweet_word)
def job_fetch_tweet_from_db(self):
# api-endpoint
base_url = "http://192.168.0.17/Sentitweet/"
tweet_get = Tweets()
tweet_get.get_tweet_from_db(base_url)
def runjob(self, ):
messagebox.showinfo('Tweet Scheduler', 'Tweet has been scheduled to run ' + time_selection.get() + ' hours')
schedule.every(int(time_selection.get())).hours.do(self.job_get_tweet())
# schedule.every(1).minutes.do(job_fetch_tweet_from_db)
# schedule.every( ).day.at("10:30").do(job)
# schedule.every(5).to(10).minutes.do(job)
# schedule.every( ).monday.do(job)
# schedule.every( ).wednesday.at("13:15").do(job)
# schedule.every( ).minute.at(":17").do(job)
running = True
while running:
schedule.run_pending()
time.sleep(1)
def stopjob(self):
print('job stopped')
Я прочитал, что я должен использовать многопоточность, чтобы иметь возможность запускать и останавливать, проблема в том, что я не знаю, как это сделать. Пожалуйста, есть идеи?