特金特:工作一开始怎么停止

2024-04-19 06:06:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有些代码有问题。因此,我可以启动应用程序,但我不能停止它一旦启动。我想我需要多线程,但没有办法。任何帮助都将不胜感激

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')


我读到我必须使用多线程才能启动和停止也,问题是我不知道如何去做。有什么想法吗


Tags: fromimportselfmastergetstyletkinterdef