Add defaults for tkinter.ttk __init__ methods (#11405)

NOTE: I've ignored things marked as undocumented or where the type of the default didn't match the annotation.
This commit is contained in:
Marcell Perger
2024-02-12 10:54:12 +00:00
committed by GitHub
parent 3e021f3330
commit 13aed8a1c2

View File

@@ -78,21 +78,21 @@ class Button(Widget):
self,
master: tkinter.Misc | None = None,
*,
class_: str = ...,
command: tkinter._ButtonCommand = ...,
compound: _TtkCompound = ...,
cursor: tkinter._Cursor = ...,
default: Literal["normal", "active", "disabled"] = ...,
image: tkinter._ImageSpec = ...,
class_: str = "",
command: tkinter._ButtonCommand = "",
compound: _TtkCompound = "",
cursor: tkinter._Cursor = "",
default: Literal["normal", "active", "disabled"] = "normal",
image: tkinter._ImageSpec = "",
name: str = ...,
padding=..., # undocumented
state: str = ...,
style: str = ...,
state: str = "normal",
style: str = "",
takefocus: tkinter._TakeFocusValue = ...,
text: float | str = ...,
text: float | str = "",
textvariable: tkinter.Variable = ...,
underline: int = ...,
width: int | Literal[""] = ...,
underline: int = -1,
width: int | Literal[""] = "",
) -> None: ...
@overload
def configure(
@@ -123,26 +123,26 @@ class Checkbutton(Widget):
self,
master: tkinter.Misc | None = None,
*,
class_: str = ...,
command: tkinter._ButtonCommand = ...,
compound: _TtkCompound = ...,
cursor: tkinter._Cursor = ...,
image: tkinter._ImageSpec = ...,
class_: str = "",
command: tkinter._ButtonCommand = "",
compound: _TtkCompound = "",
cursor: tkinter._Cursor = "",
image: tkinter._ImageSpec = "",
name: str = ...,
offvalue: Any = ...,
onvalue: Any = ...,
offvalue: Any = 0,
onvalue: Any = 1,
padding=..., # undocumented
state: str = ...,
style: str = ...,
state: str = "normal",
style: str = "",
takefocus: tkinter._TakeFocusValue = ...,
text: float | str = ...,
text: float | str = "",
textvariable: tkinter.Variable = ...,
underline: int = ...,
underline: int = -1,
# Seems like variable can be empty string, but actually setting it to
# empty string segfaults before Tcl 8.6.9. Search for ttk::checkbutton
# here: https://sourceforge.net/projects/tcl/files/Tcl/8.6.9/tcltk-release-notes-8.6.9.txt/view
variable: tkinter.Variable = ...,
width: int | Literal[""] = ...,
width: int | Literal[""] = "",
) -> None: ...
@overload
def configure(
@@ -177,23 +177,23 @@ class Entry(Widget, tkinter.Entry):
widget: str | None = None,
*,
background: str = ..., # undocumented
class_: str = ...,
class_: str = "",
cursor: tkinter._Cursor = ...,
exportselection: bool = ...,
font: _FontDescription = ...,
foreground: str = ...,
invalidcommand: tkinter._EntryValidateCommand = ...,
justify: Literal["left", "center", "right"] = ...,
exportselection: bool = True,
font: _FontDescription = "TkTextFont",
foreground: str = "",
invalidcommand: tkinter._EntryValidateCommand = "",
justify: Literal["left", "center", "right"] = "left",
name: str = ...,
show: str = ...,
state: str = ...,
style: str = ...,
show: str = "",
state: str = "normal",
style: str = "",
takefocus: tkinter._TakeFocusValue = ...,
textvariable: tkinter.Variable = ...,
validate: Literal["none", "focus", "focusin", "focusout", "key", "all"] = ...,
validatecommand: tkinter._EntryValidateCommand = ...,
width: int = ...,
xscrollcommand: tkinter._XYScrollCommand = ...,
validate: Literal["none", "focus", "focusin", "focusout", "key", "all"] = "none",
validatecommand: tkinter._EntryValidateCommand = "",
width: int = 20,
xscrollcommand: tkinter._XYScrollCommand = "",
) -> None: ...
@overload # type: ignore[override]
def configure(
@@ -254,25 +254,25 @@ class Combobox(Entry):
master: tkinter.Misc | None = None,
*,
background: str = ..., # undocumented
class_: str = ...,
cursor: tkinter._Cursor = ...,
exportselection: bool = ...,
class_: str = "",
cursor: tkinter._Cursor = "",
exportselection: bool = True,
font: _FontDescription = ..., # undocumented
foreground: str = ..., # undocumented
height: int = ...,
height: int = 10,
invalidcommand: tkinter._EntryValidateCommand = ..., # undocumented
justify: Literal["left", "center", "right"] = ...,
justify: Literal["left", "center", "right"] = "left",
name: str = ...,
postcommand: Callable[[], object] | str = ...,
postcommand: Callable[[], object] | str = "",
show=..., # undocumented
state: str = ...,
style: str = ...,
state: str = "normal",
style: str = "",
takefocus: tkinter._TakeFocusValue = ...,
textvariable: tkinter.Variable = ...,
validate: Literal["none", "focus", "focusin", "focusout", "key", "all"] = ..., # undocumented
validatecommand: tkinter._EntryValidateCommand = ..., # undocumented
values: list[str] | tuple[str, ...] = ...,
width: int = ...,
width: int = 20,
xscrollcommand: tkinter._XYScrollCommand = ..., # undocumented
) -> None: ...
@overload # type: ignore[override]
@@ -342,15 +342,15 @@ class Frame(Widget):
*,
border: tkinter._ScreenUnits = ...,
borderwidth: tkinter._ScreenUnits = ...,
class_: str = ...,
cursor: tkinter._Cursor = ...,
height: tkinter._ScreenUnits = ...,
class_: str = "",
cursor: tkinter._Cursor = "",
height: tkinter._ScreenUnits = 0,
name: str = ...,
padding: _Padding = ...,
relief: tkinter._Relief = ...,
style: str = ...,
takefocus: tkinter._TakeFocusValue = ...,
width: tkinter._ScreenUnits = ...,
style: str = "",
takefocus: tkinter._TakeFocusValue = "",
width: tkinter._ScreenUnits = 0,
) -> None: ...
@overload
def configure(
@@ -377,26 +377,26 @@ class Label(Widget):
master: tkinter.Misc | None = None,
*,
anchor: tkinter._Anchor = ...,
background: str = ...,
background: str = "",
border: tkinter._ScreenUnits = ..., # alias for borderwidth
borderwidth: tkinter._ScreenUnits = ..., # undocumented
class_: str = ...,
compound: _TtkCompound = ...,
cursor: tkinter._Cursor = ...,
class_: str = "",
compound: _TtkCompound = "",
cursor: tkinter._Cursor = "",
font: _FontDescription = ...,
foreground: str = ...,
image: tkinter._ImageSpec = ...,
foreground: str = "",
image: tkinter._ImageSpec = "",
justify: Literal["left", "center", "right"] = ...,
name: str = ...,
padding: _Padding = ...,
relief: tkinter._Relief = ...,
state: str = ...,
style: str = ...,
takefocus: tkinter._TakeFocusValue = ...,
text: float | str = ...,
state: str = "normal",
style: str = "",
takefocus: tkinter._TakeFocusValue = "",
text: float | str = "",
textvariable: tkinter.Variable = ...,
underline: int = ...,
width: int | Literal[""] = ...,
underline: int = -1,
width: int | Literal[""] = "",
wraplength: tkinter._ScreenUnits = ...,
) -> None: ...
@overload
@@ -436,19 +436,19 @@ class Labelframe(Widget):
*,
border: tkinter._ScreenUnits = ...,
borderwidth: tkinter._ScreenUnits = ..., # undocumented
class_: str = ...,
cursor: tkinter._Cursor = ...,
height: tkinter._ScreenUnits = ...,
class_: str = "",
cursor: tkinter._Cursor = "",
height: tkinter._ScreenUnits = 0,
labelanchor: Literal["nw", "n", "ne", "en", "e", "es", "se", "s", "sw", "ws", "w", "wn"] = ...,
labelwidget: tkinter.Misc = ...,
name: str = ...,
padding: _Padding = ...,
relief: tkinter._Relief = ..., # undocumented
style: str = ...,
takefocus: tkinter._TakeFocusValue = ...,
text: float | str = ...,
underline: int = ...,
width: tkinter._ScreenUnits = ...,
style: str = "",
takefocus: tkinter._TakeFocusValue = "",
text: float | str = "",
underline: int = -1,
width: tkinter._ScreenUnits = 0,
) -> None: ...
@overload
def configure(
@@ -480,21 +480,21 @@ class Menubutton(Widget):
self,
master: tkinter.Misc | None = None,
*,
class_: str = ...,
compound: _TtkCompound = ...,
cursor: tkinter._Cursor = ...,
direction: Literal["above", "below", "left", "right", "flush"] = ...,
image: tkinter._ImageSpec = ...,
class_: str = "",
compound: _TtkCompound = "",
cursor: tkinter._Cursor = "",
direction: Literal["above", "below", "left", "right", "flush"] = "below",
image: tkinter._ImageSpec = "",
menu: tkinter.Menu = ...,
name: str = ...,
padding=..., # undocumented
state: str = ...,
style: str = ...,
state: str = "normal",
style: str = "",
takefocus: tkinter._TakeFocusValue = ...,
text: float | str = ...,
text: float | str = "",
textvariable: tkinter.Variable = ...,
underline: int = ...,
width: int | Literal[""] = ...,
underline: int = -1,
width: int | Literal[""] = "",
) -> None: ...
@overload
def configure(
@@ -524,14 +524,14 @@ class Notebook(Widget):
self,
master: tkinter.Misc | None = None,
*,
class_: str = ...,
cursor: tkinter._Cursor = ...,
height: int = ...,
class_: str = "",
cursor: tkinter._Cursor = "",
height: int = 0,
name: str = ...,
padding: _Padding = ...,
style: str = ...,
style: str = "",
takefocus: tkinter._TakeFocusValue = ...,
width: int = ...,
width: int = 0,
) -> None: ...
@overload
def configure(
@@ -575,15 +575,15 @@ class Panedwindow(Widget, tkinter.PanedWindow):
self,
master: tkinter.Misc | None = None,
*,
class_: str = ...,
cursor: tkinter._Cursor = ...,
class_: str = "",
cursor: tkinter._Cursor = "",
# width and height for tkinter.ttk.Panedwindow are int but for tkinter.PanedWindow they are screen units
height: int = ...,
height: int = 0,
name: str = ...,
orient: Literal["vertical", "horizontal"] = ..., # can't be changed with configure()
style: str = ...,
takefocus: tkinter._TakeFocusValue = ...,
width: int = ...,
orient: Literal["vertical", "horizontal"] = "vertical", # can't be changed with configure()
style: str = "",
takefocus: tkinter._TakeFocusValue = "",
width: int = 0,
) -> None: ...
def add(self, child: tkinter.Widget, *, weight: int = ..., **kw) -> None: ...
@overload # type: ignore[override]
@@ -625,17 +625,17 @@ class Progressbar(Widget):
self,
master: tkinter.Misc | None = None,
*,
class_: str = ...,
cursor: tkinter._Cursor = ...,
length: tkinter._ScreenUnits = ...,
maximum: float = ...,
mode: Literal["determinate", "indeterminate"] = ...,
class_: str = "",
cursor: tkinter._Cursor = "",
length: tkinter._ScreenUnits = 100,
maximum: float = 100,
mode: Literal["determinate", "indeterminate"] = "determinate",
name: str = ...,
orient: Literal["horizontal", "vertical"] = ...,
phase: int = ..., # docs say read-only but assigning int to this works
style: str = ...,
takefocus: tkinter._TakeFocusValue = ...,
value: float = ...,
orient: Literal["horizontal", "vertical"] = "horizontal",
phase: int = 0, # docs say read-only but assigning int to this works
style: str = "",
takefocus: tkinter._TakeFocusValue = "",
value: float = 0.0,
variable: tkinter.IntVar | tkinter.DoubleVar = ...,
) -> None: ...
@overload
@@ -666,22 +666,22 @@ class Radiobutton(Widget):
self,
master: tkinter.Misc | None = None,
*,
class_: str = ...,
command: tkinter._ButtonCommand = ...,
compound: _TtkCompound = ...,
cursor: tkinter._Cursor = ...,
image: tkinter._ImageSpec = ...,
class_: str = "",
command: tkinter._ButtonCommand = "",
compound: _TtkCompound = "",
cursor: tkinter._Cursor = "",
image: tkinter._ImageSpec = "",
name: str = ...,
padding=..., # undocumented
state: str = ...,
style: str = ...,
state: str = "normal",
style: str = "",
takefocus: tkinter._TakeFocusValue = ...,
text: float | str = ...,
text: float | str = "",
textvariable: tkinter.Variable = ...,
underline: int = ...,
value: Any = ...,
underline: int = -1,
value: Any = "1",
variable: tkinter.Variable | Literal[""] = ...,
width: int | Literal[""] = ...,
width: int | Literal[""] = "",
) -> None: ...
@overload
def configure(
@@ -714,18 +714,18 @@ class Scale(Widget, tkinter.Scale): # type: ignore[misc]
self,
master: tkinter.Misc | None = None,
*,
class_: str = ...,
command: str | Callable[[str], object] = ...,
cursor: tkinter._Cursor = ...,
from_: float = ...,
length: tkinter._ScreenUnits = ...,
class_: str = "",
command: str | Callable[[str], object] = "",
cursor: tkinter._Cursor = "",
from_: float = 0,
length: tkinter._ScreenUnits = 100,
name: str = ...,
orient: Literal["horizontal", "vertical"] = ...,
orient: Literal["horizontal", "vertical"] = "horizontal",
state: str = ..., # undocumented
style: str = ...,
style: str = "",
takefocus: tkinter._TakeFocusValue = ...,
to: float = ...,
value: float = ...,
to: float = 1.0,
value: float = 0,
variable: tkinter.IntVar | tkinter.DoubleVar = ...,
) -> None: ...
@overload # type: ignore[override]
@@ -775,13 +775,13 @@ class Scrollbar(Widget, tkinter.Scrollbar): # type: ignore[misc]
self,
master: tkinter.Misc | None = None,
*,
class_: str = ...,
command: Callable[..., tuple[float, float] | None] | str = ...,
cursor: tkinter._Cursor = ...,
class_: str = "",
command: Callable[..., tuple[float, float] | None] | str = "",
cursor: tkinter._Cursor = "",
name: str = ...,
orient: Literal["horizontal", "vertical"] = ...,
style: str = ...,
takefocus: tkinter._TakeFocusValue = ...,
orient: Literal["horizontal", "vertical"] = "vertical",
style: str = "",
takefocus: tkinter._TakeFocusValue = "",
) -> None: ...
@overload # type: ignore[override]
def configure(
@@ -816,12 +816,12 @@ class Separator(Widget):
self,
master: tkinter.Misc | None = None,
*,
class_: str = ...,
cursor: tkinter._Cursor = ...,
class_: str = "",
cursor: tkinter._Cursor = "",
name: str = ...,
orient: Literal["horizontal", "vertical"] = ...,
style: str = ...,
takefocus: tkinter._TakeFocusValue = ...,
orient: Literal["horizontal", "vertical"] = "horizontal",
style: str = "",
takefocus: tkinter._TakeFocusValue = "",
) -> None: ...
@overload
def configure(
@@ -842,11 +842,11 @@ class Sizegrip(Widget):
self,
master: tkinter.Misc | None = None,
*,
class_: str = ...,
class_: str = "",
cursor: tkinter._Cursor = ...,
name: str = ...,
style: str = ...,
takefocus: tkinter._TakeFocusValue = ...,
style: str = "",
takefocus: tkinter._TakeFocusValue = "",
) -> None: ...
@overload
def configure(
@@ -867,30 +867,30 @@ class Spinbox(Entry):
master: tkinter.Misc | None = None,
*,
background: str = ..., # undocumented
class_: str = ...,
command: Callable[[], object] | str | list[str] | tuple[str, ...] = ...,
cursor: tkinter._Cursor = ...,
class_: str = "",
command: Callable[[], object] | str | list[str] | tuple[str, ...] = "",
cursor: tkinter._Cursor = "",
exportselection: bool = ..., # undocumented
font: _FontDescription = ..., # undocumented
foreground: str = ..., # undocumented
format: str = ...,
from_: float = ...,
increment: float = ...,
format: str = "",
from_: float = 0,
increment: float = 1,
invalidcommand: tkinter._EntryValidateCommand = ..., # undocumented
justify: Literal["left", "center", "right"] = ..., # undocumented
name: str = ...,
show=..., # undocumented
state: str = ...,
style: str = ...,
state: str = "normal",
style: str = "",
takefocus: tkinter._TakeFocusValue = ...,
textvariable: tkinter.Variable = ..., # undocumented
to: float = ...,
validate: Literal["none", "focus", "focusin", "focusout", "key", "all"] = ...,
validatecommand: tkinter._EntryValidateCommand = ...,
to: float = 0,
validate: Literal["none", "focus", "focusin", "focusout", "key", "all"] = "none",
validatecommand: tkinter._EntryValidateCommand = "",
values: list[str] | tuple[str, ...] = ...,
width: int = ..., # undocumented
wrap: bool = ...,
xscrollcommand: tkinter._XYScrollCommand = ...,
wrap: bool = False,
xscrollcommand: tkinter._XYScrollCommand = "",
) -> None: ...
@overload # type: ignore[override]
def configure(
@@ -959,23 +959,23 @@ class Treeview(Widget, tkinter.XView, tkinter.YView):
self,
master: tkinter.Misc | None = None,
*,
class_: str = ...,
columns: str | list[str] | list[int] | list[str | int] | tuple[str | int, ...] = ...,
cursor: tkinter._Cursor = ...,
displaycolumns: str | int | list[str] | tuple[str, ...] | list[int] | tuple[int, ...] = ...,
height: int = ...,
class_: str = "",
columns: str | list[str] | list[int] | list[str | int] | tuple[str | int, ...] = "",
cursor: tkinter._Cursor = "",
displaycolumns: str | int | list[str] | tuple[str, ...] | list[int] | tuple[int, ...] = ("#all",),
height: int = 10,
name: str = ...,
padding: _Padding = ...,
selectmode: Literal["extended", "browse", "none"] = ...,
selectmode: Literal["extended", "browse", "none"] = "extended",
# list/tuple of Literal don't actually work in mypy
#
# 'tree headings' is same as ['tree', 'headings'], and I wouldn't be
# surprised if someone is using it.
show: Literal["tree", "headings", "tree headings", ""] | list[str] | tuple[str, ...] = ...,
style: str = ...,
show: Literal["tree", "headings", "tree headings", ""] | list[str] | tuple[str, ...] = ("tree", "headings"),
style: str = "",
takefocus: tkinter._TakeFocusValue = ...,
xscrollcommand: tkinter._XYScrollCommand = ...,
yscrollcommand: tkinter._XYScrollCommand = ...,
xscrollcommand: tkinter._XYScrollCommand = "",
yscrollcommand: tkinter._XYScrollCommand = "",
) -> None: ...
@overload
def configure(
@@ -1173,16 +1173,16 @@ class LabeledScale(Frame):
*,
border: tkinter._ScreenUnits = ...,
borderwidth: tkinter._ScreenUnits = ...,
class_: str = ...,
class_: str = "",
compound: Literal["top", "bottom"] = "top",
cursor: tkinter._Cursor = ...,
height: tkinter._ScreenUnits = ...,
cursor: tkinter._Cursor = "",
height: tkinter._ScreenUnits = 0,
name: str = ...,
padding: _Padding = ...,
relief: tkinter._Relief = ...,
style: str = ...,
takefocus: tkinter._TakeFocusValue = ...,
width: tkinter._ScreenUnits = ...,
style: str = "",
takefocus: tkinter._TakeFocusValue = "",
width: tkinter._ScreenUnits = 0,
) -> None: ...
# destroy is overridden, signature does not change
value: Any