maliang¶
字数 11 个 阅读时间不到 1 分钟 访问量
A lightweight UI framework based on tkinter
with all UI drawn in Canvas
.
- Website: https://xiaokang2022.github.io/maliang/
- GitHub: Xiaokang2022/maliang
- PyPI: https://pypi.org/project/maliang/
If you ❤️ this package, please leave your ⭐ to us, thank you very much!
模块:
-
animation
–A subpackage that provides animation-related features.
-
color
–A subpackage that provides color-related features.
-
core
–The core code, you can see the general framework here.
-
media
–Extension package of maliang to play media files
-
mpl
–Extension package of maliang for matplotlib
-
standard
–All standard things.
-
theme
–A subpackage that provides theme-related features.
-
three
–Extension package of maliang for simple 3D drawings
-
toolbox
–Some practical tools
类:
-
Env
–Configurations for default environment values.
-
Font
–Configurations for default font.
-
Constant
–All Constants.
-
Tk
–Main window.
-
Toplevel
–Toplevel window.
-
Canvas
–Main contrainer: Canvas.
-
TkMessage
–Message pop-up
-
TkColorChooser
–Color chooser pop-up
-
TkFontChooser
–Font chooser pop-up
-
Text
–Text widget, generally used to display plain text
-
Image
–Image widget, generally used to display normal still image
-
Label
–Label widget, which is generally used to display key information
-
Button
–Button widget, typically used to trigger a function
-
Switch
–Switch widget, typically used to control the turning of a function on and off
-
InputBox
–Input box widget, generally used to enter certain information on a single line
-
CheckBox
–Checkbox button widget, generally used to check some options
-
ToggleButton
–A button that can display information and switch statuses
-
RadioBox
–Radio button widget, generally used to select one of several options
-
ProgressBar
–Progress bar widget, typically used to show the progress of an event
-
UnderlineButton
–Underline button, generally used to display web links
-
HighlightButton
–Highlight button, no outline, which added a highlight effect
-
IconButton
–A button with an icon on the left side
-
Slider
–A slider for visually resizing values
-
SegmentedButton
–A segmented button that can be used to toggle between multiple states
-
SpinBox
–A widget that makes it easy to enter numeric type data
-
OptionButton
–A button that has many options to choose
-
ComboBox
–An input box that can provide several options
-
Spinner
–Spinners visually communicate that something is processing
-
Tooltip
–A tooltip that can display additional information
-
PhotoImage
–Pillow version of
tkinter.PhotoImage
.
函数:
-
reset
–Reset all configuration options.
Env ¶
Configurations for default environment values.
方法:
-
reset
–Reset all configuration options.
-
get_default_system
–Get the system of environment.
Font ¶
Configurations for default font.
方法:
-
reset
–Reset all configuration options.
-
get_default_family
–Get the default font family.
Constant ¶
All Constants.
属性:
-
GOLDEN_RATIO
(typing.Final[float]
) –The golden ratio, which is needed to automatically calculate the color
-
PREDEFINED_EVENTS
(typing.Final[tuple[str, ...]]
) –Predefined events that can be used directly without registration. It is
-
PREDEFINED_VIRTUAL_EVENTS
(typing.Final[tuple[str, ...]]
) –Predefined virtual events that can be used directly without
GOLDEN_RATIO class-attribute
instance-attribute
¶
The golden ratio, which is needed to automatically calculate the color of widget on "disabled"
state. It is READ-ONLY.
PREDEFINED_EVENTS class-attribute
instance-attribute
¶
PREDEFINED_EVENTS: typing.Final[tuple[str, ...]] = (
"<KeyPress>",
"<KeyRelease>",
"<Button-1>",
"<Button-2>",
"<Button-3>",
"<Button-4>",
"<Button-5>",
"<ButtonRelease-1>",
"<ButtonRelease-2>",
"<ButtonRelease-3>",
"<MouseWheel>",
"<Motion>",
"<B1-Motion>",
"<B2-Motion>",
"<B3-Motion>",
"<Configure>",
)
Predefined events that can be used directly without registration. It is READ-ONLY.
Tk ¶
Tk(
size: tuple[int, int] = (1280, 720),
position: tuple[int, int] | None = None,
*,
title: str | None = None,
icon: str | enhanced.PhotoImage | None = None,
**kwargs
)
Main window.
In general, there is only one main window. But after destroying it, another one can be created.
size
: size of the windowposition
: position of the window, based on the upper left (nw) corner. And negative numbers are based on the bottom right (se) corner.title
: title of the window, default value is"tk"
icon
: icon of the window, default value is the icon of tk**kwargs
: compatible with other parameters of classtkinter.Tk
方法:
-
theme
–Change the color theme of the window
-
geometry
–Change the size and position of the window and return the current
-
center
–Center the container
-
icon
–Set the icon of the window.
-
alpha
–Set or get the transparency of the window
-
topmost
–Set or get whether the window is pinned or not
-
fullscreen
–Set or get whether the window is full-screen.
-
toolwindow
–Set or get whether the window is tool-window.
-
transparentcolor
–Set or get the penetration color of the window.
-
modified
–Set or get whether the window is modified.
-
transparent
–Set or get whether the window is transparent.
-
destroy
–Destroy this and all descendants widgets.
-
at_exit
–Set a function that will be called when the window is closed.
属性:
theme ¶
theme(
value: typing.Literal["light", "dark"],
*,
include_children: bool = True,
include_canvases: bool = True
) -> None
Change the color theme of the window
value
: theme nameinclude_children
: wether include its children, like Toplevelinclude_canvases
: wether include its canvases
geometry ¶
geometry(
*, size: tuple[int, int] | None = None, position: tuple[int, int] | None = None
) -> tuple[int, int, int, int] | None
Change the size and position of the window and return the current size and position of the window.
size
: the size of the window, if it is None, does not change anythingposition
: the position of the window, if it is None, does not change anything
If you want to use tkinter.Tk.geometry
, please use tkinter.Tk.wm_geometry
instead.
center ¶
center(*, refer: tkinter.Misc | None = None) -> None
Center the container
refer
: The area of the reference widget, if it is None, means that the reference area is the entire screen.
alpha ¶
Set or get the transparency of the window
value
: the transparency of the window, range is 0~1
topmost ¶
Set or get whether the window is pinned or not
value
: indicate whether the window is topmost
fullscreen ¶
Set or get whether the window is full-screen.
value
: indicate whether the window is full-screen
The method should be called at the end of the code, or after some time after the program has started.
toolwindow ¶
Set or get whether the window is tool-window.
value
: indicate whether the window is tool-window
This method only works on Windows!
transparentcolor ¶
Set or get the penetration color of the window.
value
: the penetration color of the window
This method only works on Windows!
modified ¶
Set or get whether the window is modified.
value
: indicate whether the window is modified
This method only works on macOS!
transparent ¶
Set or get whether the window is transparent.
value
: indicate whether the window is transparent
This method only works on macOS!
Toplevel ¶
Toplevel(
master: Tk | Toplevel | None = None,
size: tuple[int, int] = (960, 540),
position: tuple[int, int] | None = None,
*,
title: str | None = None,
icon: str | enhanced.PhotoImage | None = None,
grab: bool = False,
focus: bool = True,
**kwargs
)
Bases: tkinter.Toplevel
, Tk
, Misc
Toplevel window.
It can be used as a pop-up window, or it can be customized to put anything you want to show.
master
: parent widgetsize
: size of the window, default value is 960x540(px)position
: position of the window, default value indicates randomtitle
: title of window, default is the same as title of mastericon
: icon of the window, default is the same as title of mastergrab
: set grab for this windowfocus
: whether direct input focus to this window**kwargs
: compatible with other parameters of classtkinter.Toplevel
方法:
-
destroy
–Destroy this and all descendants widgets.
Canvas ¶
Canvas(
master: Tk | Toplevel | Canvas | None = None,
*,
expand: typing.Literal["", "x", "y", "xy"] = "xy",
auto_zoom: bool = False,
keep_ratio: typing.Literal["min", "max"] | None = None,
free_anchor: bool = False,
auto_update: bool | None = None,
zoom_all_items: bool = False,
**kwargs
)
Main contrainer: Canvas.
The parent widget of all virtual widgets is Canvas
.
master
: parent widgetexpand
: the mode of expand,x
is horizontal, andy
is verticalauto_zoom
: whether or not to scale its items automaticallykeep_ratio
: the mode of aspect ratio,min
follows the minimum value,max
follows the maximum valuefree_anchor
: whether the anchor point is free-floatingauto_update
: whether the theme manager update it automaticallyzoom_all_items
: (Experimental) whether or not to scale its all itemskwargs
: compatible with other parameters of classtkinter.Canvas
方法:
-
theme
–Change the color theme of the Canvas and its items
-
zoom
–Resize and position the
Canvas
based on the relevant parameters. -
destroy
–Destroy this and all descendants widgets.
-
clear
–Clear all things in the Canvas.
-
create_text
–Create text with coordinates x, y.
-
on_motion
–Events to move the mouse
-
on_click
–Events to active the mouse
-
on_release
–Events to release the mouse
-
on_wheel
–Events to scroll the mouse wheel
-
on_key_press
–Events for typing
-
on_key_release
–Events for typing
-
register_event
–Register a event to process.
属性:
theme ¶
Change the color theme of the Canvas and its items
value
: theme name
zoom ¶
Resize and position the Canvas
based on the relevant parameters.
This method only works for Canvas with Place layout.
create_text ¶
Create text with coordinates x, y.
on_wheel ¶
Events to scroll the mouse wheel
register_event ¶
Register a event to process.
name
: event name, such as ““ add
: whether it is an attached call
In general, you don’t need to call this method, but when the event to be bound is not in the predefined event, you need to manually call the method once.
TkMessage ¶
TkMessage(
message: str | None = None,
detail: str | None = None,
*,
title: str | None = None,
icon: typing.Literal["error", "info", "question", "warning"] = "info",
option: typing.Literal[
"abortretryignore", "ok", "okcancel", "retrycancel", "yesno", "yesnocancel"
] = "ok",
default: typing.Literal["abort", "retry", "ignore", "ok", "cancel", "yes", "no"] | None = None,
master: tkinter.Tk | None = None,
command: (
collections.abc.Callable[
[typing.Literal["abort", "retry", "ignore", "ok", "cancel", "yes", "no"]], typing.Any
]
| None
) = None
)
Message pop-up
message
: messagedetail
: detail messagetitle
: title of the windowicon
: iconoption
: type of the message pop-updefault
: button where the focus is, default is the leftmost onemaster
: parent widget of the windowcommand
: callback function
TkColorChooser ¶
TkColorChooser(
*,
title: str | None = None,
color: str | None = None,
master: tkinter.Tk | None = None,
command: collections.abc.Callable[[str], typing.Any] | None = None
)
Color chooser pop-up
title
: title of the windowcolor
: default colormaster
: parent widget of the windowcommand
: callback function
TkFontChooser ¶
TkFontChooser(
*,
title: str | None = None,
font: str | None = None,
master: tkinter.Tk | None = None,
command: collections.abc.Callable[[str], typing.Any] | None = None
)
Font chooser pop-up
title
: title of the windowfont
: default fontmaster
: parent widget of the windowcommand
: callback function
Text ¶
Text(
master: containers.Canvas | virtual.Widget,
position: tuple[int, int],
*,
text: str = "",
family: str | None = None,
fontsize: int | None = None,
weight: typing.Literal["normal", "bold"] = "normal",
slant: typing.Literal["roman", "italic"] = "roman",
underline: bool = False,
overstrike: bool = False,
justify: typing.Literal["left", "center", "right"] = "left",
anchor: typing.Literal["n", "e", "w", "s", "nw", "ne", "sw", "se", "center"] = "nw",
capture_events: bool | None = None,
gradient_animation: bool | None = None,
auto_update: bool | None = None,
style: type[virtual.Style] | None = None
)
Text widget, generally used to display plain text
master
: parent canvasposition
: position of the widgettext
: text of the widgetfamily
: font familyfontsize
: font sizeweight
: weight of the textslant
: slant of the textunderline
: whether the text is underlineoverstrike
: whether the text is overstrikejustify
: justify mode of the textanchor
: anchor of the widgetcapture_events
: wether detect another widget under the widgetgradient_animation
: wether enable gradient_animationauto_update
: whether the theme manager update it automaticallystyle
: style of the widget
方法:
Image ¶
Image(
master: containers.Canvas | virtual.Widget,
position: tuple[int, int],
size: tuple[int, int] | None = None,
*,
image: enhanced.PhotoImage | None = None,
anchor: typing.Literal["n", "e", "w", "s", "nw", "ne", "sw", "se", "center"] = "nw",
capture_events: bool | None = None,
gradient_animation: bool | None = None,
auto_update: bool | None = None,
style: type[virtual.Style] | None = None
)
Image widget, generally used to display normal still image
master
: parent canvasposition
: position of the widgetsize
: size of the widgetimage
: image of the widgetanchor
: anchor of the widgetcapture_events
: wether detect another widget under the widgetgradient_animation
: wether enable gradient_animationauto_update
: whether the theme manager update it automaticallystyle
: style of the widget
方法:
Label ¶
Label(
master: containers.Canvas | virtual.Widget,
position: tuple[int, int],
size: tuple[int, int] | None = None,
*,
text: str = "",
family: str | None = None,
fontsize: int | None = None,
weight: typing.Literal["normal", "bold"] = "normal",
slant: typing.Literal["roman", "italic"] = "roman",
underline: bool = False,
overstrike: bool = False,
justify: typing.Literal["left", "center", "right"] = "left",
image: enhanced.PhotoImage | None = None,
anchor: typing.Literal["n", "e", "w", "s", "nw", "ne", "sw", "se", "center"] = "nw",
capture_events: bool | None = None,
gradient_animation: bool | None = None,
auto_update: bool | None = None,
style: type[virtual.Style] | None = None
)
Label widget, which is generally used to display key information
master
: parent canvasposition
: position of the widgetsize
: size of the widgettext
: text of the widgetfamily
: font familyfontsize
: font sizeweight
: weight of the textslant
: slant of the textunderline
: whether the text is underlineoverstrike
: whether the text is overstrikejustify
: justify mode of the textimage
: image of the widgetanchor
: anchor of the widgetcapture_events
: wether detect another widget under the widgetgradient_animation
: wether enable gradient_animationauto_update
: whether the theme manager update it automaticallystyle
: style of the widget
方法:
Button ¶
Button(
master: containers.Canvas | virtual.Widget,
position: tuple[int, int],
size: tuple[int, int] | None = None,
*,
text: str = "",
family: str | None = None,
fontsize: int | None = None,
weight: typing.Literal["normal", "bold"] = "normal",
slant: typing.Literal["roman", "italic"] = "roman",
underline: bool = False,
overstrike: bool = False,
justify: typing.Literal["left", "center", "right"] = "left",
command: collections.abc.Callable | None = None,
image: enhanced.PhotoImage | None = None,
anchor: typing.Literal["n", "e", "w", "s", "nw", "ne", "sw", "se", "center"] = "nw",
capture_events: bool | None = None,
gradient_animation: bool | None = None,
auto_update: bool | None = None,
style: type[virtual.Style] | None = None
)
Button widget, typically used to trigger a function
master
: parent canvasposition
: position of the widgetsize
: size of the widgettext
: text of the widgetfamily
: font familyfontsize
: font sizeweight
: weight of the textslant
: slant of the textunderline
: whether the text is underlineoverstrike
: whether the text is overstrikejustify
: justify mode of the textcommand
: a function that is triggered when the button is pressedimage
: image of the widgetanchor
: anchor of the widgetcapture_events
: wether detect another widget under the widgetgradient_animation
: wether enable gradient_animationauto_update
: whether the theme manager update it automaticallystyle
: style of the widget
方法:
Switch ¶
Switch(
master: containers.Canvas | virtual.Widget,
position: tuple[int, int],
length: int = 60,
*,
default: bool | None = None,
command: collections.abc.Callable[[bool], typing.Any] | None = None,
image: enhanced.PhotoImage | None = None,
anchor: typing.Literal["n", "e", "w", "s", "nw", "ne", "sw", "se", "center"] = "nw",
capture_events: bool | None = None,
gradient_animation: bool | None = None,
auto_update: bool | None = None,
style: type[virtual.Style] | None = None
)
Switch widget, typically used to control the turning of a function on and off
master
: parent canvasposition
: position of the widgetlength
: length of the widgetdefault
: default value of the widgetcommand
: a function that is triggered when the switch is changedimage
: image of the widgetanchor
: anchor of the widgetcapture_events
: wether detect another widget under the widgetgradient_animation
: wether enable gradient_animationauto_update
: whether the theme manager update it automaticallystyle
: style of the widget
方法:
InputBox ¶
InputBox(
master: containers.Canvas | virtual.Widget,
position: tuple[int, int],
size: tuple[int, int] | None = None,
*,
family: str | None = None,
fontsize: int | None = None,
weight: typing.Literal["normal", "bold"] = "normal",
slant: typing.Literal["roman", "italic"] = "roman",
underline: bool = False,
overstrike: bool = False,
align: typing.Literal["left", "right", "center"] = "left",
placeholder: str = "",
show: str | None = None,
ignore: tuple[str, ...] = ("\n", "\r"),
limit: int = math.inf,
limit_width: int = 0,
image: enhanced.PhotoImage | None = None,
anchor: typing.Literal["n", "e", "w", "s", "nw", "ne", "sw", "se", "center"] = "nw",
capture_events: bool | None = None,
gradient_animation: bool | None = None,
auto_update: bool | None = None,
style: type[virtual.Style] | None = None
)
Input box widget, generally used to enter certain information on a single line
master
: parent canvasposition
: position of the widgetsize
: size of the widgetfamily
: font familyfontsize
: font sizeweight
: weight of the textslant
: slant of the textunderline
: whether the text is underlineoverstrike
: whether the text is overstrikealign
: align mode of the textshow
: display a value that obscures the original contentignore
: ignore the input of some charactersplaceholder
: a placeholder for the promptlimit
: limit on the number of characterslimit_width
: limit on the width of charactersimage
: image of the widgetanchor
: anchor of the widgetcapture_events
: wether detect another widget under the widgetgradient_animation
: wether enable gradient_animationauto_update
: whether the theme manager update it automaticallystyle
: style of the widget
方法:
-
get
–Get the value of the Entry
-
set
–Set the text value of the Entry
-
insert
–Insert
-
append
–Append text to Entry
-
remove
–Remove
-
pop
–Delete a specified amount of text
-
clear
–Clear the text value of the Entry
CheckBox ¶
CheckBox(
master: containers.Canvas | virtual.Widget,
position: tuple[int, int],
length: int = 30,
*,
default: bool | None = None,
command: collections.abc.Callable[[bool], typing.Any] | None = None,
image: enhanced.PhotoImage | None = None,
anchor: typing.Literal["n", "e", "w", "s", "nw", "ne", "sw", "se", "center"] = "nw",
capture_events: bool | None = None,
gradient_animation: bool | None = None,
auto_update: bool | None = None,
style: type[virtual.Style] | None = None
)
Checkbox button widget, generally used to check some options
master
: parent canvasposition
: position of the widgetlength
: length of the widgetdefault
: default state of the widgetcommand
: a function that is triggered when the state of check button is onimage
: image of the widgetanchor
: anchor of the widgetcapture_events
: wether detect another widget under the widgetgradient_animation
: wether enable gradient_animationauto_update
: whether the theme manager update it automaticallystyle
: style of the widget
方法:
ToggleButton ¶
ToggleButton(
master: containers.Canvas | virtual.Widget,
position: tuple[int, int],
size: tuple[int, int] | None = None,
*,
text: str = "",
family: str | None = None,
fontsize: int | None = None,
weight: typing.Literal["normal", "bold"] = "normal",
slant: typing.Literal["roman", "italic"] = "roman",
underline: bool = False,
overstrike: bool = False,
justify: typing.Literal["left", "center", "right"] = "left",
default: bool | None = None,
command: collections.abc.Callable[[bool], typing.Any] | None = None,
image: enhanced.PhotoImage | None = None,
anchor: typing.Literal["n", "e", "w", "s", "nw", "ne", "sw", "se", "center"] = "nw",
capture_events: bool | None = None,
gradient_animation: bool | None = None,
auto_update: bool | None = None,
style: type[virtual.Style] | None = None
)
A button that can display information and switch statuses
master
: parent canvasposition
: position of the widgetsize
: size of the widgettext
: text of the widgetfamily
: font familyfontsize
: font sizeweight
: weight of the textslant
: slant of the textunderline
: whether the text is underlineoverstrike
: whether the text is overstrikejustify
: justify mode of the textdefault
: default state of the widgetcommand
: a function that is triggered when the state of check button is onimage
: image of the widgetanchor
: anchor of the widgetcapture_events
: wether detect another widget under the widgetgradient_animation
: wether enable gradient_animationauto_update
: whether the theme manager update it automaticallystyle
: style of the widget
方法:
RadioBox ¶
RadioBox(
master: containers.Canvas | virtual.Widget,
position: tuple[int, int],
length: int = 30,
*,
default: bool | None = None,
command: collections.abc.Callable[[int], typing.Any] | None = None,
image: enhanced.PhotoImage | None = None,
anchor: typing.Literal["n", "e", "w", "s", "nw", "ne", "sw", "se", "center"] = "nw",
capture_events: bool | None = None,
gradient_animation: bool | None = None,
auto_update: bool | None = None,
style: type[virtual.Style] | None = None
)
Radio button widget, generally used to select one of several options
master
: parent canvasposition
: position of the widgetlength
: length of the widgetdefault
: default state of the widgetcommand
: a function that is triggered when the state of radio button is onimage
: image of the widgetanchor
: anchor of the widgetcapture_events
: wether detect another widget under the widgetgradient_animation
: wether enable gradient_animationauto_update
: whether the theme manager update it automaticallystyle
: style of the widget
方法:
ProgressBar ¶
ProgressBar(
master: containers.Canvas | virtual.Widget,
position: tuple[int, int],
size: tuple[int, int] = (400, 20),
*,
default: float | None = None,
command: collections.abc.Callable[[float], typing.Any] | None = None,
image: enhanced.PhotoImage | None = None,
anchor: typing.Literal["n", "e", "w", "s", "nw", "ne", "sw", "se", "center"] = "nw",
capture_events: bool | None = None,
gradient_animation: bool | None = None,
auto_update: bool | None = None,
style: type[virtual.Style] | None = None
)
Progress bar widget, typically used to show the progress of an event
master
: parent canvasposition
: position of the widgetsize
: size of the widgetdefault
: default value of the widgetcommand
: a function that is triggered when the progress of progress bar is 100%image
: image of the widgetanchor
: anchor of the widgetcapture_events
: wether detect another widget under the widgetgradient_animation
: wether enable gradient_animationauto_update
: whether the theme manager update it automaticallystyle
: style of the widget
方法:
UnderlineButton ¶
UnderlineButton(
master: containers.Canvas | virtual.Widget,
position: tuple[int, int],
*,
text: str = "",
family: str | None = None,
fontsize: int | None = None,
weight: typing.Literal["normal", "bold"] = "normal",
slant: typing.Literal["roman", "italic"] = "roman",
underline: bool = False,
overstrike: bool = False,
justify: typing.Literal["left", "center", "right"] = "left",
command: collections.abc.Callable | None = None,
image: enhanced.PhotoImage | None = None,
anchor: typing.Literal["n", "e", "w", "s", "nw", "ne", "sw", "se", "center"] = "nw",
capture_events: bool | None = None,
gradient_animation: bool = False,
auto_update: bool | None = None,
style: type[virtual.Style] | None = None
)
Underline button, generally used to display web links
master
: parent canvasposition
: position of the widgettext
: text of the widgetfamily
: font familyfontsize
: font sizeweight
: weight of the textslant
: slant of the textunderline
: whether the text is underlineoverstrike
: whether the text is overstrikejustify
: justify mode of the textcommand
: a function that is triggered when the underline button is pressedimage
: image of the widgetanchor
: anchor of the widgetcapture_events
: wether detect another widget under the widgetgradient_animation
: wether enable gradient_animationauto_update
: whether the theme manager update it automaticallystyle
: style of the widget
HighlightButton ¶
HighlightButton(
master: containers.Canvas | virtual.Widget,
position: tuple[int, int],
*,
text: str = "",
family: str | None = None,
fontsize: int | None = None,
weight: typing.Literal["normal", "bold"] = "normal",
slant: typing.Literal["roman", "italic"] = "roman",
underline: bool = False,
overstrike: bool = False,
justify: typing.Literal["left", "center", "right"] = "left",
command: collections.abc.Callable | None = None,
image: enhanced.PhotoImage | None = None,
anchor: typing.Literal["n", "e", "w", "s", "nw", "ne", "sw", "se", "center"] = "nw",
capture_events: bool | None = None,
gradient_animation: bool | None = None,
auto_update: bool | None = None,
style: type[virtual.Style] | None = None
)
Highlight button, no outline, which added a highlight effect
master
: parent canvasposition
: position of the widgettext
: text of the widgetfamily
: font familyfontsize
: font sizeweight
: weight of the textslant
: slant of the textunderline
: whether the text is underlineoverstrike
: whether the text is overstrikejustify
: justify mode of the textcommand
: a function that is triggered when the hightlight button is pressedimage
: image of the widgetanchor
: anchor of the widgetcapture_events
: wether detect another widget under the widgetgradient_animation
: wether enable gradient_animationauto_update
: whether the theme manager update it automaticallystyle
: style of the widget
IconButton ¶
IconButton(
master: containers.Canvas | virtual.Widget,
position: tuple[int, int],
size: tuple[int, int] | None = None,
*,
text: str = "",
family: str | None = None,
fontsize: int | None = None,
weight: typing.Literal["normal", "bold"] = "normal",
slant: typing.Literal["roman", "italic"] = "roman",
underline: bool = False,
overstrike: bool = False,
justify: typing.Literal["left", "center", "right"] = "left",
command: collections.abc.Callable | None = None,
image: enhanced.PhotoImage | None = None,
anchor: typing.Literal["n", "e", "w", "s", "nw", "ne", "sw", "se", "center"] = "nw",
capture_events: bool | None = None,
gradient_animation: bool | None = None,
auto_update: bool | None = None,
style: type[virtual.Style] | None = None
)
A button with an icon on the left side
master
: parent canvasposition
: position of the widgetsize
: size of the widgettext
: text of the widgetfamily
: font familyfontsize
: font sizeweight
: weight of the textslant
: slant of the textunderline
: whether the text is underlineoverstrike
: whether the text is overstrikejustify
: justify mode of the textcommand
: a function that is triggered when the button is pressedimage
: image of the widgetanchor
: anchor of the widgetcapture_events
: wether detect another widget under the widgetgradient_animation
: wether enable gradient_animationauto_update
: whether the theme manager update it automaticallystyle
: style of the widget
方法:
Slider ¶
Slider(
master: containers.Canvas | virtual.Widget,
position: tuple[int, int],
size: tuple[int, int] = (400, 30),
*,
default: float | None = None,
command: collections.abc.Callable[[float], typing.Any] | None = None,
anchor: typing.Literal["n", "e", "w", "s", "nw", "ne", "sw", "se", "center"] = "nw",
capture_events: bool | None = None,
gradient_animation: bool | None = None,
auto_update: bool | None = None,
style: type[virtual.Style] | None = None
)
A slider for visually resizing values
master
: parent canvasposition
: position of the widgetsize
: size of the widgetdefault
: default value of the widgetcommand
: a function that is triggered when the button is pressedanchor
: anchor of the widgetcapture_events
: wether detect another widget under the widgetgradient_animation
: wether enable gradient_animationauto_update
: whether the theme manager update it automaticallystyle
: style of the widget
方法:
SegmentedButton ¶
SegmentedButton(
master: containers.Canvas | virtual.Widget,
position: tuple[int, int],
sizes: tuple[tuple[int, int], ...] = (),
*,
text: tuple[str, ...] = (),
family: str | None = None,
fontsize: int | None = None,
weight: typing.Literal["normal", "bold"] = "normal",
slant: typing.Literal["roman", "italic"] = "roman",
underline: bool = False,
overstrike: bool = False,
justify: typing.Literal["left", "center", "right"] = "left",
default: int | None = None,
command: collections.abc.Callable[[int | None], typing.Any] | None = None,
image: tuple[enhanced.PhotoImage | None, ...] = (),
layout: typing.Literal["horizontal", "vertical"] = "horizontal",
anchor: typing.Literal["n", "e", "w", "s", "nw", "ne", "sw", "se", "center"] = "nw",
capture_events: bool | None = None,
gradient_animation: bool | None = None,
auto_update: bool | None = None,
style: type[virtual.Style] | None = None
)
A segmented button that can be used to toggle between multiple states
master
: parent canvasposition
: position of the widgetsize
: size of the widgettext
: text of the widgetfamily
: font familyfontsize
: font sizeweight
: weight of the textslant
: slant of the textunderline
: whether the text is underlineoverstrike
: whether the text is overstrikejustify
: justify mode of the textdefault
: default value of the widgetcommand
: a function that is triggered when the button is pressedimage
: image of the widgetlayout
: layout mode of the widgetanchor
: anchor of the widgetcapture_events
: wether detect another widget under the widgetgradient_animation
: wether enable gradient_animationauto_update
: whether the theme manager update it automaticallystyle
: style of the widget
方法:
SpinBox ¶
SpinBox(
master: containers.Canvas | virtual.Widget,
position: tuple[int, int],
size: tuple[int, int] | None = None,
*,
format_spec: str = "d",
step: int = 1,
family: str | None = None,
fontsize: int | None = None,
weight: typing.Literal["normal", "bold"] = "normal",
slant: typing.Literal["roman", "italic"] = "roman",
underline: bool = False,
overstrike: bool = False,
align: typing.Literal["left", "right", "center"] = "left",
placeholder: str = "",
show: str | None = None,
limit: int = math.inf,
default: str | None = None,
command: collections.abc.Callable[[bool], typing.Any] | None = None,
image: enhanced.PhotoImage | None = None,
anchor: typing.Literal["n", "e", "w", "s", "nw", "ne", "sw", "se", "center"] = "nw",
capture_events: bool | None = None,
gradient_animation: bool | None = None,
auto_update: bool | None = None,
style: type[virtual.Style] | None = None
)
A widget that makes it easy to enter numeric type data
master
: parent canvasposition
: position of the widgetsize
: size of the widgetformat_spec
: format of valuestep
: value of each changefamily
: font familyfontsize
: font sizeweight
: weight of the textslant
: slant of the textunderline
: whether the text is underlineoverstrike
: whether the text is overstrikealign
: align mode of the textshow
: display a value that obscures the original contentplaceholder
: a placeholder for the promptlimit
: limit on the number of charactersdefault
: default value of the widgetcommand
: a function that is triggered when the button is pressedimage
: image of the widgetanchor
: anchor of the widgetcapture_events
: wether detect another widget under the widgetgradient_animation
: wether enable gradient_animationauto_update
: whether the theme manager update it automaticallystyle
: style of the widget
方法:
-
change
–Try change the current value
-
get
–Get the value of the Entry
-
set
–Set the text value of the Entry
-
append
–Append text to Entry
-
delete
–Delete a specified amount of text
-
clear
–Clear the text value of the Entry
OptionButton ¶
OptionButton(
master: containers.Canvas | virtual.Widget,
position: tuple[int, int],
size: tuple[int, int] | None = None,
*,
text: tuple[str, ...] = (),
family: str | None = None,
fontsize: int | None = None,
weight: typing.Literal["normal", "bold"] = "normal",
slant: typing.Literal["roman", "italic"] = "roman",
underline: bool = False,
overstrike: bool = False,
justify: typing.Literal["left", "center", "right"] = "left",
default: int | None = None,
command: collections.abc.Callable[[int | None], typing.Any] | None = None,
image: tuple[enhanced.PhotoImage | None, ...] = (),
anchor: typing.Literal["n", "e", "w", "s", "nw", "ne", "sw", "se", "center"] = "nw",
align: typing.Literal["up", "center", "down"] = "center",
capture_events: bool | None = None,
gradient_animation: bool | None = None,
auto_update: bool | None = None,
style: type[virtual.Style] | None = None
)
A button that has many options to choose
master
: parent canvasposition
: position of the widgetsize
: size of the widgettext
: text of the widgetfamily
: font familyfontsize
: font sizeweight
: weight of the textslant
: slant of the textunderline
: whether the text is underlineoverstrike
: whether the text is overstrikejustify
: justify mode of the textdefault
: default value of the widgetcommand
: a function that is triggered when the button is pressedimage
: image of the widgetanchor
: anchor of the widgetalign
: align of the widgetcapture_events
: wether detect another widget under the widgetgradient_animation
: wether enable gradient_animationauto_update
: whether the theme manager update it automaticallystyle
: style of the widget
方法:
ComboBox ¶
ComboBox(
master: containers.Canvas | virtual.Widget,
position: tuple[int, int],
size: tuple[int, int] | None = None,
*,
text: tuple[str, ...] = (),
family: str | None = None,
fontsize: int | None = None,
weight: typing.Literal["normal", "bold"] = "normal",
slant: typing.Literal["roman", "italic"] = "roman",
underline: bool = False,
overstrike: bool = False,
justify: typing.Literal["left", "center", "right"] = "left",
default: int | None = None,
command: collections.abc.Callable[[int | None], typing.Any] | None = None,
image: tuple[enhanced.PhotoImage | None, ...] = (),
anchor: typing.Literal["n", "e", "w", "s", "nw", "ne", "sw", "se", "center"] = "nw",
align: typing.Literal["up", "down"] = "down",
capture_events: bool | None = None,
gradient_animation: bool | None = None,
auto_update: bool | None = None,
style: type[virtual.Style] | None = None
)
An input box that can provide several options
master
: parent canvasposition
: position of the widgetsize
: size of the widgettext
: text of the widgetfamily
: font familyfontsize
: font sizeweight
: weight of the textslant
: slant of the textunderline
: whether the text is underlineoverstrike
: whether the text is overstrikejustify
: justify mode of the textdefault
: default value of the widgetcommand
: a function that is triggered when the button is pressedimage
: image of the widgetanchor
: anchor of the widgetalign
: align of the widgetcapture_events
: wether detect another widget under the widgetgradient_animation
: wether enable gradient_animationauto_update
: whether the theme manager update it automaticallystyle
: style of the widget
方法:
Spinner ¶
Spinner(
master: containers.Canvas | virtual.Widget,
position: tuple[int, int],
size: tuple[int, int] = (30, 30),
*,
default: float | None = None,
command: collections.abc.Callable[[float], typing.Any] | None = None,
widths: tuple[int, int] | None = None,
mode: typing.Literal["determinate", "indeterminate"] = "determinate",
anchor: typing.Literal["n", "e", "w", "s", "nw", "ne", "sw", "se", "center"] = "nw",
capture_events: bool | None = None,
gradient_animation: bool | None = None,
auto_update: bool | None = None,
style: type[virtual.Style] | None = None
)
Spinners visually communicate that something is processing
master
: parent canvasposition
: position of the widgetsize
: size of the widgetdefault
: default value of the widgetcommand
: a function that is triggered when the progress of progress bar is 100%widths
: width of the outside ring and inside ringmode
: mode of the Spinneranchor
: anchor of the widgetcapture_events
: wether detect another widget under the widgetgradient_animation
: wether enable gradient_animationauto_update
: whether the theme manager update it automaticallystyle
: style of the widget
方法:
Tooltip ¶
Tooltip(
widget: virtual.Widget,
size: tuple[int, int] | None = None,
*,
text: str = "",
align: typing.Literal["up", "down", "right", "left", "center"] = "down",
padding: int = 3,
family: str | None = None,
fontsize: int | None = None,
weight: typing.Literal["normal", "bold"] = "normal",
slant: typing.Literal["roman", "italic"] = "roman",
underline: bool = False,
overstrike: bool = False,
justify: typing.Literal["left", "center", "right"] = "left",
gradient_animation: bool | None = None,
auto_update: bool | None = None,
style: type[virtual.Style] | None = None
)
A tooltip that can display additional information
widget
: the associated widgetsize
: size of the widgettext
: text of the widgetalign
: align mode of the tooltippadding
: extra padding between tooltip and the associated widgetfamily
: font familyfontsize
: font sizeweight
: weight of the textslant
: slant of the textunderline
: whether the text is underlineoverstrike
: whether the text is overstrikejustify
: justify mode of the textgradient_animation
: wether enable gradient_animationauto_update
: whether the theme manager update it automaticallystyle
: style of the widget
方法:
PhotoImage ¶
Bases: ImageTk.PhotoImage
, tkinter.PhotoImage
Pillow version of tkinter.PhotoImage
.
方法:
scale ¶
scale(x: float, y: float) -> PhotoImage
Scale the PhotoImage.
x
: The x-axis scale factory
: The y-axis scale factor
resize ¶
resize(width: int, height: int) -> PhotoImage
Resize the PhotoImage.
width
: The new width of the imageheight
: The new height of the image