可以通过以下步骤实现:
import tkinter as tk
root = tk.Tk()
class PageManager:
def __init__(self, root):
self.root = root
self.pages = []
# 创建进度条和变量
self.progress_var = tk.DoubleVar()
self.progress_bar = tk.Progressbar(root, variable=self.progress_var)
self.progress_bar.pack()
def update_progress(self, value):
self.progress_var.set(value)
class Page(tk.Frame):
def __init__(self, parent, page_manager):
tk.Frame.__init__(self, parent)
self.page_manager = page_manager
# 创建按钮
self.button = tk.Button(self, text="更新进度条", command=self.update_progress)
self.button.pack()
def update_progress(self):
# 调用父类的函数更新进度条
self.page_manager.update_progress(50) # 这里的值可以根据实际需求进行修改
page_manager = PageManager(root)
page1 = Page(root, page_manager)
page2 = Page(root, page_manager)
page_manager.pages.append(page1)
page_manager.pages.append(page2)
def show_page(page):
page.pack()
def hide_page(page):
page.pack_forget()
button1 = tk.Button(root, text="页面1", command=lambda: show_page(page1))
button1.pack()
button2 = tk.Button(root, text="页面2", command=lambda: show_page(page2))
button2.pack()
root.mainloop()
通过以上步骤,可以实现从父类下定义的函数更新多页GUI中的tkinter进度条。每个子页面中的按钮点击后,都会调用父类的函数来更新进度条的值。这样,在不同的子页面之间切换时,进度条的值也会相应地更新。
领取专属 10元无门槛券
手把手带您无忧上云