我想从tkinter gui通过telnetsession推送一些配置行。 简化;在我的GUI中有一个按钮。按下此按钮后,telnet会话开始(它从外部文件共享获取配置行)。 但目前还不是很好用,现在有办法判断它是否还在忙。我想通过弹出一个进度条来解决这个问题。你知道吗
我的主脚本包含了所有配置文件的获取、修改和发送到交换机的过程。 我有一个“独立”的脚本和弹出的进度条。 现在我想把这两个结合起来,但行不通。我读过关于多线程的文章,但是由于我是一个新的编程人员,如果我的情况需要的话,我需要一些帮助来理解它是如何工作的
主脚本:
#window stuff
window = Tk()
window.geometry('700x500')
window.title("Switchconfig generator")
window.lift()
def btntelnetclicked():
try:
telnet()
except:
messagebox.showinfo("Status", "Something went wrong, config was not pushed.")
#buttons
btntelnet= Button(window, text="Push config", command=btntelnetclicked)
btntelnet.grid(column=2, row=4, padx=10, pady=10)
这当然只是一段代码
进度条
import threading
try: import tkinter
except ImportError:
import Tkinter as tkinter
import ttk
else: from tkinter import ttk
class GUI_Core(object):
def __init__(self):
self.root = tkinter.Tk()
self.progbar = ttk.Progressbar(self.root)
self.progbar.config(maximum=4, mode='indeterminate')
self.progbar.pack()
self.b_start = ttk.Button(self.root, text='Start')
self.b_start['command'] = self.start_thread
self.b_start.pack()
def start_thread(self):
self.b_start['state'] = 'disable'
self.progbar.start()
self.secondary_thread = threading.Thread(target=arbitrary)
self.secondary_thread.start()
self.root.after(50, self.check_thread)
def check_thread(self):
if self.secondary_thread.is_alive():
self.root.after(50, self.check_thread)
else:
self.progbar.stop()
self.b_start['state'] = 'normal'
def arbitrary():
btntelnetclicked()
gui = GUI_Core()
gui.root.mainloop()
目前没有回答
相关问题 更多 >
编程相关推荐