【问题标题】:How to add progress bar on customtkinter?如何在 customtkinter 上添加进度条?
【发布时间】:2022-12-05 19:27:22
【问题描述】:
import customtkinter as CTK

class App(CTK.CTk):
    def __init__(self):
        super().__init__()

    self.bar = CTK.CTkProgressBar(master=self.checkbox, orientation='horizontal', mode='determinate')
    self.bar.grid(row=10, column=0, pady=10, padx=20, sticky="n")


    def test(self):
    for x in range(500):
        return x**2

我想要这样当我想要运行测试功能时(通过我已经制作的按钮,它本身可以正常工作)栏开始,当它结束时它停止。尽管最好的办法是在 UI 本身中使用 tqdm 进度条代替 tkinter 进度条?

我试过添加 self.bar.start() 并在函数的开始/结束处停止,但似乎不起作用。它仅在函数本身完成后运行。

【问题讨论】:

    标签: python-3.x tkinter progress-bar tqdm customtkinter


    【解决方案1】:

    要将进度条添加到自定义 Tkinter 小部件,您可以使用 ttk.Progressbar 小部件。 ttk.Progressbar 小部件是一个主题小部件,它提供了长时间运行的操作进度的视觉指示。

    以下是如何在自定义 Tkinter 小部件中使用 ttk.Progressbar 小部件的示例:

    import tkinter as tk
    from tkinter import ttk
    
    class CustomWidget(ttk.Frame):
        def __init__(self, parent):
            super().__init__(parent)
    
            # Create a progress bar
            self.progress = ttk.Progressbar(self, orient="horizontal", length=200, mode="determinate")
            self.progress.pack()
    
            # Create a button to start the operation
            self.start_button = ttk.Button(self, text="Start", command=self.start_operation)
            self.start_button.pack()
    
        def start_operation(self):
            # Start the long-running operation here...
    
            # Update the progress bar
            self.progress["value"] = 50  # Set the progress to 50%
            self.progress.update()  # Update the progress bar on the widget
    

    在此示例中,CustomWidget 类创建了一个 ttk.Progressbar 小部件和一个 ttk.Button 小部件。单击按钮时,会调用 start_operation 方法,模拟长时间运行的操作并更新进度条以显示进度。

    ttk.Progressbar 小部件有几个属性可用于控制其外观和行为,例如方向(水平或垂直)、长度和模式(确定或不确定)。在这个例子中,进度条是水平的,长度为200像素,并且是determinate模式,这意味着进度是已知的,可以通过设置value属性来指示。

    要更新进度条,将 value 属性设置为当前进度值(例如本例中的 50%),并调用 update 方法来刷新小部件。这将使进度条更新为新值,显示操作的当前进度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-28
      • 1970-01-01
      • 2012-02-13
      • 1970-01-01
      • 1970-01-01
      • 2020-10-03
      • 2020-07-20
      相关资源
      最近更新 更多