Python 带进度条的螺纹接头
我试图制作一个线程化的Tkinter应用程序,将视频上传到服务器,问题是当我制作线程化应用程序时,它以无限循环结束。代码如下:Python 带进度条的螺纹接头,python,multithreading,python-2.7,tkinter,queue,Python,Multithreading,Python 2.7,Tkinter,Queue,我试图制作一个线程化的Tkinter应用程序,将视频上传到服务器,问题是当我制作线程化应用程序时,它以无限循环结束。代码如下: class ThreadedTask(threading.Thread): print "threaded task start" def __init__(self, queue): threading.Thread.__init__(self) self.queue = queue def start_upload(s
class ThreadedTask(threading.Thread):
print "threaded task start"
def __init__(self, queue):
threading.Thread.__init__(self)
self.queue = queue
def start_upload(self):
PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), "upload_video_to_server.py"))
if os.path.isfile(PATH) and os.access(PATH, os.R_OK):
print filename
upload_video_to_server.make_Info(filename=filename, title=video_title, description=video_desc, tags=video_keywords)
upload_video_to_server.upload_Start(filename=filename)
print "ok"
else:
tkMessageBox.showerror(
"Error!",
"Unable to find upload script!"
)
return
def tb_click():
print "tbclick start"
progress()
prog_bar.start()
global queue
queue = Queue.Queue()
ThreadedTask(queue).start()
app.after(100, process_queue)
def process_queue():
try:
print "try pass"
msg = queue.get(0)
print "MSG: ", msg
prog_bar.stop()
except Queue.Empty:
print "Queue is empty!"
app.after(100, process_queue)
def progress():
global prog_bar
print "prog bar is being made"
prog_bar = ttk.Progressbar(
app, orient="horizontal",
length=200, mode="indeterminate"
)
prog_bar.pack(side=TOP)
button1 = Button(app, text="START", width=20, command=tb_click)
button1.place(x=355, y=420)
app.mainloop()
运行此代码后,我立即打印出“线程任务开始”,单击“开始”按钮后,我进入无限循环打印“尝试通过”和“队列为空”。。。当我单击“开始”按钮时,什么也没有发生(对最终用户可见)(视频上载脚本没有从此代码运行)
这个代码怎么了?有什么我遗漏的吗?看起来好像
开始上传
从未执行过。尝试将其重命名为run
。然后,当调用start()
时,它将被执行
不过,您可能仍然会收到“队列为空”消息,因为您似乎从未向队列添加任何内容