Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 36 additions & 17 deletions stdlib/tkinter/__init__.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -338,30 +338,40 @@ class Misc:
# binds do. The default value of func is not str.
@overload
def bind(
self, sequence: str | None = ..., func: Callable[[Event[Misc]], Any] | None = ..., add: bool | None = ...
self,
sequence: str | None = ...,
func: Callable[[Event[Misc]], Any] | None = ...,
add: Literal["", "+"] | bool | None = ...,
) -> str: ...
@overload
def bind(self, sequence: str | None, func: str, add: bool | None = ...) -> None: ...
def bind(self, sequence: str | None, func: str, add: Literal["", "+"] | bool | None = ...) -> None: ...
@overload
def bind(self, *, func: str, add: bool | None = ...) -> None: ...
def bind(self, *, func: str, add: Literal["", "+"] | bool | None = ...) -> None: ...
# There's no way to know what type of widget bind_all and bind_class
# callbacks will get, so those are Misc.
@overload
def bind_all(
self, sequence: str | None = ..., func: Callable[[Event[Misc]], Any] | None = ..., add: bool | None = ...
self,
sequence: str | None = ...,
func: Callable[[Event[Misc]], Any] | None = ...,
add: Literal["", "+"] | bool | None = ...,
) -> str: ...
@overload
def bind_all(self, sequence: str | None, func: str, add: bool | None = ...) -> None: ...
def bind_all(self, sequence: str | None, func: str, add: Literal["", "+"] | bool | None = ...) -> None: ...
@overload
def bind_all(self, *, func: str, add: bool | None = ...) -> None: ...
def bind_all(self, *, func: str, add: Literal["", "+"] | bool | None = ...) -> None: ...
@overload
def bind_class(
self, className: str, sequence: str | None = ..., func: Callable[[Event[Misc]], Any] | None = ..., add: bool | None = ...
self,
className: str,
sequence: str | None = ...,
func: Callable[[Event[Misc]], Any] | None = ...,
add: Literal["", "+"] | bool | None = ...,
) -> str: ...
@overload
def bind_class(self, className: str, sequence: str | None, func: str, add: bool | None = ...) -> None: ...
def bind_class(self, className: str, sequence: str | None, func: str, add: Literal["", "+"] | bool | None = ...) -> None: ...
@overload
def bind_class(self, className: str, *, func: str, add: bool | None = ...) -> None: ...
def bind_class(self, className: str, *, func: str, add: Literal["", "+"] | bool | None = ...) -> None: ...
def unbind(self, sequence: str, funcid: str | None = ...) -> None: ...
def unbind_all(self, sequence: str) -> None: ...
def unbind_class(self, className: str, sequence: str) -> None: ...
Expand Down Expand Up @@ -847,12 +857,15 @@ class Widget(BaseWidget, Pack, Place, Grid):
# widgets don't.
@overload
def bind(
self: _W, sequence: str | None = ..., func: Callable[[Event[_W]], Any] | None = ..., add: bool | None = ...
self: _W,
sequence: str | None = ...,
func: Callable[[Event[_W]], Any] | None = ...,
add: Literal["", "+"] | bool | None = ...,
) -> str: ...
@overload
def bind(self, sequence: str | None, func: str, add: bool | None = ...) -> None: ...
def bind(self, sequence: str | None, func: str, add: Literal["", "+"] | bool | None = ...) -> None: ...
@overload
def bind(self, *, func: str, add: bool | None = ...) -> None: ...
def bind(self, *, func: str, add: Literal["", "+"] | bool | None = ...) -> None: ...

class Toplevel(BaseWidget, Wm):
# Toplevel and Tk have the same options because they correspond to the same
Expand Down Expand Up @@ -1129,12 +1142,14 @@ class Canvas(Widget, XView, YView):
tagOrId: str | int,
sequence: str | None = ...,
func: Callable[[Event[Canvas]], Any] | None = ...,
add: bool | None = ...,
add: Literal["", "+"] | bool | None = ...,
) -> str: ...
@overload
def tag_bind(self, tagOrId: str | int, sequence: str | None, func: str, add: bool | None = ...) -> None: ...
def tag_bind(
self, tagOrId: str | int, sequence: str | None, func: str, add: Literal["", "+"] | bool | None = ...
) -> None: ...
@overload
def tag_bind(self, tagOrId: str | int, *, func: str, add: bool | None = ...) -> None: ...
def tag_bind(self, tagOrId: str | int, *, func: str, add: Literal["", "+"] | bool | None = ...) -> None: ...
def tag_unbind(self, tagOrId: str | int, sequence: str, funcid: str | None = ...) -> None: ...
def canvasx(self, screenx, gridspacing: Any | None = ...): ...
def canvasy(self, screeny, gridspacing: Any | None = ...): ...
Expand Down Expand Up @@ -2879,10 +2894,14 @@ class Text(Widget, XView, YView):
# tag_bind stuff is very similar to Canvas
@overload
def tag_bind(
self, tagName: str, sequence: str | None, func: Callable[[Event[Text]], Any] | None, add: bool | None = ...
self,
tagName: str,
sequence: str | None,
func: Callable[[Event[Text]], Any] | None,
add: Literal["", "+"] | bool | None = ...,
) -> str: ...
@overload
def tag_bind(self, tagName: str, sequence: str | None, func: str, add: bool | None = ...) -> None: ...
def tag_bind(self, tagName: str, sequence: str | None, func: str, add: Literal["", "+"] | bool | None = ...) -> None: ...
def tag_unbind(self, tagName: str, sequence: str, funcid: str | None = ...) -> None: ...
# allowing any string for cget instead of just Literals because there's no other way to look up tag options
def tag_cget(self, tagName: str, option: str) -> Any: ...
Expand Down