我对某些代码有疑问。因此,我可以启动该应用程序,但一旦启动就无法停止。我认为我需要多线程,但是没有办法。任何帮助将不胜感激
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')
我读到我必须使用多线程才能启动和停止,问题是我不知道该怎么做。有什么想法吗?