From f25bbcee748cbac200d5fad818fe65d0a70b77b2 Mon Sep 17 00:00:00 2001 From: PolRubio <941250apoc> Date: Thu, 10 Aug 2023 18:40:04 +0200 Subject: [PATCH] First version --- customtkinter/windows/ctk_input_dialog.py | 36 +++++++++++++---------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/customtkinter/windows/ctk_input_dialog.py b/customtkinter/windows/ctk_input_dialog.py index 6c4669a..c6db26b 100644 --- a/customtkinter/windows/ctk_input_dialog.py +++ b/customtkinter/windows/ctk_input_dialog.py @@ -3,9 +3,9 @@ from typing import Union, Tuple, Optional from .widgets import CTkLabel from .widgets import CTkEntry from .widgets import CTkButton +from .widgets import CTkComboBox from .widgets.theme import ThemeManager from .ctk_toplevel import CTkToplevel -from .widgets.font import CTkFont class CTkInputDialog(CTkToplevel): @@ -23,9 +23,8 @@ class CTkInputDialog(CTkToplevel): entry_fg_color: Optional[Union[str, Tuple[str, str]]] = None, entry_border_color: Optional[Union[str, Tuple[str, str]]] = None, entry_text_color: Optional[Union[str, Tuple[str, str]]] = None, - + values: Optional[Union[str, list[str]]] = None, title: str = "CTkDialog", - font: Optional[Union[tuple, CTkFont]] = None, text: str = "CTkDialog"): super().__init__(fg_color=fg_color) @@ -41,11 +40,11 @@ class CTkInputDialog(CTkToplevel): self._user_input: Union[str, None] = None self._running: bool = False - self._title = title self._text = text - self._font = font + + self._values = values - self.title(self._title) + self.title(title) self.lift() # lift window on top self.attributes("-topmost", True) # stay on top self.protocol("WM_DELETE_WINDOW", self._on_closing) @@ -54,6 +53,7 @@ class CTkInputDialog(CTkToplevel): self.grab_set() # make other windows not clickable def _create_widgets(self): + self.grid_columnconfigure((0, 1), weight=1) self.rowconfigure(0, weight=1) @@ -62,16 +62,22 @@ class CTkInputDialog(CTkToplevel): wraplength=300, fg_color="transparent", text_color=self._text_color, - text=self._text, - font=self._font) + text=self._text,) self._label.grid(row=0, column=0, columnspan=2, padx=20, pady=20, sticky="ew") - self._entry = CTkEntry(master=self, - width=230, - fg_color=self._entry_fg_color, - border_color=self._entry_border_color, - text_color=self._entry_text_color, - font=self._font) + if self._values is not None: + self._entry = CTkComboBox(master=self, + width=230, + fg_color=self._entry_fg_color, + border_color=self._entry_border_color, + text_color=self._entry_text_color, + values=self._values) + else: + self._entry = CTkEntry(master=self, + width=230, + fg_color=self._entry_fg_color, + border_color=self._entry_border_color, + text_color=self._entry_text_color) self._entry.grid(row=1, column=0, columnspan=2, padx=20, pady=(0, 20), sticky="ew") self._ok_button = CTkButton(master=self, @@ -81,7 +87,6 @@ class CTkInputDialog(CTkToplevel): hover_color=self._button_hover_color, text_color=self._button_text_color, text='Ok', - font=self._font, command=self._ok_event) self._ok_button.grid(row=2, column=0, columnspan=1, padx=(20, 10), pady=(0, 20), sticky="ew") @@ -92,7 +97,6 @@ class CTkInputDialog(CTkToplevel): hover_color=self._button_hover_color, text_color=self._button_text_color, text='Cancel', - font=self._font, command=self._cancel_event) self._cancel_button.grid(row=2, column=1, columnspan=1, padx=(10, 20), pady=(0, 20), sticky="ew")