Module TkZero.Progressbar

Creates a themed scale. (Slider)

Expand source code
"""
Creates a themed scale. (Slider)
"""

import tkinter as tk
from tkinter import ttk
from typing import Union


class OrientModes:
    """
    The orient modes for progress bars.
    Horizontal - makes the progress bar horizontal.
    Vertical - makes the progress bar vertical.
    """
    Horizontal = tk.HORIZONTAL
    Vertical = tk.VERTICAL


class ProgressModes:
    """
    The progress bar modes for, well, progress bars.
    Determinate - you know how much would be completed, etc.
    Indeterminate - you don't know, the progress bar will just be loading forever until stopped.
    """
    Determinate = "determinate"
    Indeterminate = "indeterminate"


class Progressbar(ttk.Progressbar):
    def __init__(self, parent: Union[tk.Widget, Union[tk.Tk, tk.Toplevel]], length: int,
                 mode: str = ProgressModes.Determinate, orientation: str = OrientModes.Horizontal):
        """
        Initiate a ttk.Scrollbar.

        :param parent: The parent of the scrollbar.
        :param length: An int, which is the length of the scale.
        :param mode: The mode the progress bar should operate in. Defaults to ProgressModes.Determinate
        :param orientation: The orientation of the scrollbar and what direction it should scroll the widget in. Defaults
         to OrientModes.Horizontal and is a str.
         value.
        """
        if not isinstance(parent, (tk.Widget, tk.Tk, tk.Toplevel)):
            raise TypeError(f"parent is not a Union[tk.Widget, Union[tk.Tk, tk.Toplevel]]! "
                            f"(type passed in: {repr(type(parent))})")
        if not isinstance(length, int):
            raise TypeError(f"length is not a int! (type passed in: {repr(type(length))})")
        if not isinstance(mode, str):
            raise TypeError(f"mode is not a str! (type passed in: {repr(type(mode))})")
        if not isinstance(orientation, str):
            raise TypeError(f"orientation is not a str! (type passed in: {repr(type(orientation))})")
        super().__init__(master=parent, orient=orientation, length=length, mode=mode)
        self._style_root = "TProgressbar"
        self._enabled = True
        self._orientation = orientation

    @property
    def value(self) -> float:
        """
        Get the value on this progress bar.

        :return: A float.
        """
        return float(self["value"])

    @value.setter
    def value(self, new_value: Union[int, float]) -> None:
        """
        Set the value on this progress bar.

        :param new_value: A float or an int.
        :return: None.
        """
        if not isinstance(new_value, (float, int)):
            raise TypeError(f"new_value is not a float or an int! (type passed in: {repr(type(new_value))})")
        self["value"] = float(new_value)

    @property
    def maximum(self) -> float:
        """
        Get the maximum on this progress bar.

        :return: A float.
        """
        return self["maximum"]

    @maximum.setter
    def maximum(self, new_value: Union[int, float]) -> None:
        """
        Set the maximum on this progress bar.

        :param new_value: A float or an int.
        :return: None.
        """
        if not isinstance(new_value, (float, int)):
            raise TypeError(f"new_value is not a float or an int! (type passed in: {repr(type(new_value))})")
        self["maximum"] = float(new_value)

    @property
    def enabled(self) -> bool:
        """
        Get whether this widget is in normal mode or disabled mode. (grayed out and cannot interact with)

        :return: A bool, True if normal otherwise False.
        """
        return self._enabled

    @enabled.setter
    def enabled(self, new_state: bool) -> None:
        """
        Set whether this widget is in normal mode or disabled mode (grayed out and cannot interact with)

        :param new_state: The new state (a bool) True for enabled and False for disabled.
        :return: None.
        """
        if not isinstance(new_state, bool):
            raise TypeError(f"new_state is not a bool! (type passed in: {repr(type(new_state))})")
        self._enabled = new_state
        self.state(["!disabled" if self._enabled else "disabled"])

Classes

class OrientModes

The orient modes for progress bars. Horizontal - makes the progress bar horizontal. Vertical - makes the progress bar vertical.

Expand source code
class OrientModes:
    """
    The orient modes for progress bars.
    Horizontal - makes the progress bar horizontal.
    Vertical - makes the progress bar vertical.
    """
    Horizontal = tk.HORIZONTAL
    Vertical = tk.VERTICAL

Class variables

var Horizontal
var Vertical
class ProgressModes

The progress bar modes for, well, progress bars. Determinate - you know how much would be completed, etc. Indeterminate - you don't know, the progress bar will just be loading forever until stopped.

Expand source code
class ProgressModes:
    """
    The progress bar modes for, well, progress bars.
    Determinate - you know how much would be completed, etc.
    Indeterminate - you don't know, the progress bar will just be loading forever until stopped.
    """
    Determinate = "determinate"
    Indeterminate = "indeterminate"

Class variables

var Determinate
var Indeterminate
class Progressbar (parent: Union[tkinter.Widget, tkinter.Tk, tkinter.Toplevel], length: int, mode: str = 'determinate', orientation: str = 'horizontal')

Ttk Progressbar widget shows the status of a long-running operation. They can operate in two modes: determinate mode shows the amount completed relative to the total amount of work to be done, and indeterminate mode provides an animated display to let the user know that something is happening.

Initiate a ttk.Scrollbar.

:param parent: The parent of the scrollbar. :param length: An int, which is the length of the scale. :param mode: The mode the progress bar should operate in. Defaults to ProgressModes.Determinate :param orientation: The orientation of the scrollbar and what direction it should scroll the widget in. Defaults to OrientModes.Horizontal and is a str. value.

Expand source code
class Progressbar(ttk.Progressbar):
    def __init__(self, parent: Union[tk.Widget, Union[tk.Tk, tk.Toplevel]], length: int,
                 mode: str = ProgressModes.Determinate, orientation: str = OrientModes.Horizontal):
        """
        Initiate a ttk.Scrollbar.

        :param parent: The parent of the scrollbar.
        :param length: An int, which is the length of the scale.
        :param mode: The mode the progress bar should operate in. Defaults to ProgressModes.Determinate
        :param orientation: The orientation of the scrollbar and what direction it should scroll the widget in. Defaults
         to OrientModes.Horizontal and is a str.
         value.
        """
        if not isinstance(parent, (tk.Widget, tk.Tk, tk.Toplevel)):
            raise TypeError(f"parent is not a Union[tk.Widget, Union[tk.Tk, tk.Toplevel]]! "
                            f"(type passed in: {repr(type(parent))})")
        if not isinstance(length, int):
            raise TypeError(f"length is not a int! (type passed in: {repr(type(length))})")
        if not isinstance(mode, str):
            raise TypeError(f"mode is not a str! (type passed in: {repr(type(mode))})")
        if not isinstance(orientation, str):
            raise TypeError(f"orientation is not a str! (type passed in: {repr(type(orientation))})")
        super().__init__(master=parent, orient=orientation, length=length, mode=mode)
        self._style_root = "TProgressbar"
        self._enabled = True
        self._orientation = orientation

    @property
    def value(self) -> float:
        """
        Get the value on this progress bar.

        :return: A float.
        """
        return float(self["value"])

    @value.setter
    def value(self, new_value: Union[int, float]) -> None:
        """
        Set the value on this progress bar.

        :param new_value: A float or an int.
        :return: None.
        """
        if not isinstance(new_value, (float, int)):
            raise TypeError(f"new_value is not a float or an int! (type passed in: {repr(type(new_value))})")
        self["value"] = float(new_value)

    @property
    def maximum(self) -> float:
        """
        Get the maximum on this progress bar.

        :return: A float.
        """
        return self["maximum"]

    @maximum.setter
    def maximum(self, new_value: Union[int, float]) -> None:
        """
        Set the maximum on this progress bar.

        :param new_value: A float or an int.
        :return: None.
        """
        if not isinstance(new_value, (float, int)):
            raise TypeError(f"new_value is not a float or an int! (type passed in: {repr(type(new_value))})")
        self["maximum"] = float(new_value)

    @property
    def enabled(self) -> bool:
        """
        Get whether this widget is in normal mode or disabled mode. (grayed out and cannot interact with)

        :return: A bool, True if normal otherwise False.
        """
        return self._enabled

    @enabled.setter
    def enabled(self, new_state: bool) -> None:
        """
        Set whether this widget is in normal mode or disabled mode (grayed out and cannot interact with)

        :param new_state: The new state (a bool) True for enabled and False for disabled.
        :return: None.
        """
        if not isinstance(new_state, bool):
            raise TypeError(f"new_state is not a bool! (type passed in: {repr(type(new_state))})")
        self._enabled = new_state
        self.state(["!disabled" if self._enabled else "disabled"])

Ancestors

  • tkinter.ttk.Progressbar
  • tkinter.ttk.Widget
  • tkinter.Widget
  • tkinter.BaseWidget
  • tkinter.Misc
  • tkinter.Pack
  • tkinter.Place
  • tkinter.Grid

Instance variables

var enabled : bool

Get whether this widget is in normal mode or disabled mode. (grayed out and cannot interact with)

:return: A bool, True if normal otherwise False.

Expand source code
@property
def enabled(self) -> bool:
    """
    Get whether this widget is in normal mode or disabled mode. (grayed out and cannot interact with)

    :return: A bool, True if normal otherwise False.
    """
    return self._enabled
var maximum : float

Get the maximum on this progress bar.

:return: A float.

Expand source code
@property
def maximum(self) -> float:
    """
    Get the maximum on this progress bar.

    :return: A float.
    """
    return self["maximum"]
var value : float

Get the value on this progress bar.

:return: A float.

Expand source code
@property
def value(self) -> float:
    """
    Get the value on this progress bar.

    :return: A float.
    """
    return float(self["value"])