我将Tkinter用作我正在创建的桌面应用程序的gui。我不断收到相同的错误
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 appframe(self, master):
tFrame1 = ttk.Frame(master)
tFrame1.place(relx=-0.017, rely=-0.067, relheight=1.078, relwidth=1.025)
tFrame1.configure(relief='groove')
tFrame1.configure(borderwidth="2")
tFrame1.configure(relief="groove")
tFrame1.configure(width=615)
return tFrame1
def headerlabel(self, tframe1):
headind_label = tk.Label(tframe1)
headind_label.place(relx=0.049, rely=0.165, height=21, width=294)
headind_label.configure(background="#4285F4")
headind_label.configure(disabledforeground="#a3a3a3")
headind_label.configure(foreground="#ffffff")
headind_label.configure(text='''Enter Keyword/Hashtag from Twitter''', font=("Helvetica Bold", 12))
def keywordlabel(self, tframe1):
key_label = tk.Label(tframe1)
key_label.place(relx=0.081, rely=0.268, height=31, width=94)
key_label.configure(background="#4285F4")
key_label.configure(disabledforeground="#a3a3a3")
key_label.configure(foreground="#ffffff")
key_label.configure(text='''Keyword''', font=("Helvetica Bold", 9))
key_label.configure(width=94)
def timeselection(self, tframe1):
time_label = tk.Label(tframe1)
time_label.place(relx=0.049, rely=0.392, height=31, width=134)
time_label.configure(background="#4285F4")
time_label.configure(disabledforeground="#a3a3a3")
time_label.configure(foreground="#ffffff")
time_label.configure(text='''Run time(hourly)''', font=("Helvetica Bold", 9))
time_label.configure(width=114)
def keyword_input(self, tframe1, ):
global key_input
key_input = tk.Entry(tframe1)
key_input.place(relx=0.276, rely=0.268, height=30, relwidth=0.234)
key_input.configure(background="white")
key_input.configure(disabledforeground="#a3a3a3")
key_input.configure(font="TkFixedFont")
key_input.configure(foreground="#000000")
key_input.configure(highlightbackground="#d9d9d9")
key_input.configure(highlightcolor="black")
key_input.configure(insertbackground="black")
key_input.configure(selectbackground="#c4c4c4")
key_input.configure(selectforeground="black")
def startbutton(self, tframe1):
start_Button = tk.Button(tframe1)
start_Button.place(relx=0.293, rely=0.515, height=24, width=35)
start_Button.configure(activebackground="#ececec")
start_Button.configure(activeforeground="#000000")
start_Button.configure(background="#ffffff")
start_Button.configure(disabledforeground="#a3a3a3")
start_Button.configure(foreground="#000000")
start_Button.configure(highlightbackground="#d9d9d9")
start_Button.configure(highlightcolor="black")
start_Button.configure(pady="0")
start_Button.configure(text='''Start''', command=self.runjob)
def stopbutton(self, tframe1):
stop_button = tk.Button(tframe1)
stop_button.place(relx=0.407, rely=0.515, height=24, width=35)
stop_button.configure(activebackground="#ececec")
stop_button.configure(activeforeground="#000000")
stop_button.configure(background="#ffffff")
stop_button.configure(disabledforeground="#a3a3a3")
stop_button.configure(foreground="#000000")
stop_button.configure(highlightbackground="#d9d9d9")
stop_button.configure(highlightcolor="black")
stop_button.configure(pady="0")
stop_button.configure(text='''Stop''', command=self.stopjob)
def combobox(self, tframe1):
global time_selection
time_selection = ttk.Combobox(tframe1)
time_selection.place(relx=0.276, rely=0.392, relheight=0.064, relwidth=0.233)
time_selection['values'] = ("1", "6", "12", "24")
time_selection.current(0) # set the selected item
time_selection.configure(takefocus="")
def frame_divider(self, tframe1):
tseparator1 = ttk.Separator(tframe1)
tseparator1.place(relx=0.545, rely=0.01, relheight=0.99)
tseparator1.configure(orient="vertical")
def job_get_tweet(self):
# api-endpoint
base_url = "http://192.168.0.7/"
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.7/"
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())).hour.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')
root = Tk()
my_gui = MyFirstGUI()
username = tk.StringVar()
# calling the master frame method to create the master window
master_frame = my_gui.masterframe(root)
# calling the application frame to pack all widgets
app_frame = my_gui.appframe(master_frame)
# calling the first label widget method to display the label
my_gui.headerlabel(app_frame)
# calling the keyword label method to display the label widget
my_gui.keywordlabel(app_frame)
# calling the time selection label method to display the label widget
my_gui.timeselection(app_frame)
# calling the text entry widget in the frame
my_gui.keyword_input(app_frame)
# calling the timeslot selection widget in the frame
my_gui.combobox(app_frame)
# calling the start button widget to fire an action
my_gui.startbutton(app_frame)
# calling the stop button widget to fire an action to stop all running instances
my_gui.stopbutton(app_frame)
# calling frame vertical seperator
my_gui.frame_divider(app_frame)
# displays all widgets used fro the tkinter library
root.mainloop()
我希望将这些推文保存在我的mongodb数据库中,但会不断获得
Tkinter回调中的异常 追溯(最近一次通话): _new_conn中的第159行的文件“ C:\ Users \ cybor \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ urllib3 \ connection.py” (self._dns_host,self.port),self.timeout,** extra_kw)
关于如何解决此问题的任何想法?