From 70e5cde027d32b0bae99bd39b0ceaccc9a4e2160 Mon Sep 17 00:00:00 2001 From: Marcell Perger Date: Sun, 11 Feb 2024 21:17:58 +0000 Subject: [PATCH 1/3] Add types for `ttk.OptionMenu` --- stdlib/tkinter/ttk.pyi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/stdlib/tkinter/ttk.pyi b/stdlib/tkinter/ttk.pyi index e58e896e416f..49f37892f53e 100644 --- a/stdlib/tkinter/ttk.pyi +++ b/stdlib/tkinter/ttk.pyi @@ -1190,8 +1190,8 @@ class LabeledScale(Frame): class OptionMenu(Menubutton): def __init__( self, - master, - variable, + master: tkinter.Misc | None, + variable: tkinter.Variable, default: str | None = None, *values: str, # rest of these are keyword-only because *args syntax used above @@ -1201,4 +1201,4 @@ class OptionMenu(Menubutton): ) -> None: ... # configure, config, cget, destroy are inherited from Menubutton # destroy and __setitem__ are overridden, signature does not change - def set_menu(self, default: Incomplete | None = None, *values) -> None: ... + def set_menu(self, default: str | None = None, *values: str) -> None: ... From 863152216421476af5e286bc90332900b9641d3d Mon Sep 17 00:00:00 2001 From: Marcell Perger Date: Sun, 11 Feb 2024 21:22:54 +0000 Subject: [PATCH 2/3] Add defaults for `ttk.OptionMenu.__init__` --- stdlib/tkinter/ttk.pyi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/stdlib/tkinter/ttk.pyi b/stdlib/tkinter/ttk.pyi index 49f37892f53e..1fc696765ce0 100644 --- a/stdlib/tkinter/ttk.pyi +++ b/stdlib/tkinter/ttk.pyi @@ -1195,9 +1195,9 @@ class OptionMenu(Menubutton): default: str | None = None, *values: str, # rest of these are keyword-only because *args syntax used above - style: str = ..., - direction: Literal["above", "below", "left", "right", "flush"] = ..., - command: Callable[[tkinter.StringVar], object] | None = ..., + style: str = "", + direction: Literal["above", "below", "left", "right", "flush"] = "below", + command: Callable[[tkinter.StringVar], object] | None = None, ) -> None: ... # configure, config, cget, destroy are inherited from Menubutton # destroy and __setitem__ are overridden, signature does not change From b09098607ce379b9b298d3a8b2a0c39e74b6d962 Mon Sep 17 00:00:00 2001 From: Marcell Perger <102254594+MarcellPerger1@users.noreply.github.com> Date: Mon, 12 Feb 2024 11:13:10 +0000 Subject: [PATCH 3/3] Change `variable` to be `StringVar` Co-authored-by: Akuli --- stdlib/tkinter/ttk.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/tkinter/ttk.pyi b/stdlib/tkinter/ttk.pyi index 1fc696765ce0..4874e279042e 100644 --- a/stdlib/tkinter/ttk.pyi +++ b/stdlib/tkinter/ttk.pyi @@ -1191,7 +1191,7 @@ class OptionMenu(Menubutton): def __init__( self, master: tkinter.Misc | None, - variable: tkinter.Variable, + variable: tkinter.StringVar, default: str | None = None, *values: str, # rest of these are keyword-only because *args syntax used above