PySimpleGUI – Popup Windows

PySimpleGUI – Popup Windows ”; Previous Next A function in PySimpleGUI module that start with the prefix popup* generates window of a predefined appearance. The name of the popup function indicates is purpose and configuration of buttons present on it. These popups are created with just one line of code. Each popup serves a certain purpose, and then closes immediately. A most basic popup is created by the popup()function. It can be used like a print() function to display more than one parameters on the window, and an OK button. It acts like a message box, that disappears immediately on pressing the OK button >>> import PySimpleGUI as psg >>> psg.popup(“Hello World”) It displays a popup window with Hello World text and OK button. Note that more than one strings can be displayed. Following popups with different button configurations are available − popup_ok − Display Popup with OK button only popup_ok_cancel − Display popup with OK and Cancel buttons popup_cancel − Display Popup with “cancelled” button text popup_yes_no − Display Popup with Yes and No buttons popup_error − Popup with colored button and ”Error” as button text These functions return the text of the button pressed by the user. For example, if the user presses OK button of the ok-cancel popup, it returns Ok which can be used in further programming logic. Following popups accept input from the user in the form of text or let the user select file/folder/date from the selectors. popup_get_text − Display Popup with text entry field. Returns the text entered or None if closed / cancelled popup_get_file − Display popup window with text entry field and browse button so that a file can be chosen by user. popup_get_folder − Display popup with text entry field and browse button so that a folder can be chosen. popup_get_date − Display a calendar window, get the user”s choice, return as a tuple (mon, day, year) When user has made the selection and Ok button is pressed, the return value of the popup is the text, which can be used further in the program. Following script shows the use of some of the above popups − import PySimpleGUI as psg text = psg.popup_get_text(”Enter your name”, title=”Textbox”) print (“You entered: “, text) file=psg.popup_get_file(”Select a file”, title=”File selector”) print (“File selected”, file) folder=psg.popup_get_folder(”Get folder”, title=”Folder selector”) print (“Folder selected”,folder) ch = psg.popup_yes_no(“Do you want to Continue?”, title=”YesNo”) print (“You clicked”, ch) ch = psg.popup_ok_cancel(“Press Ok to proceed”, “Press cancel to stop”, title=”OkCancel”) if ch==”OK”: print (“You pressed OK”) if ch==”Cancel”: print (“You pressed Cancel”) psg.popup_no_buttons(”You pressed”, ch, non_blocking=True) psg.popup_auto_close(”This window will Autoclose”) Output − The popups generated by the above code are shown below − The following output is displayed on the Python console − You entered: Tutorialspoint File selected F:/python36/hello.png Folder selected F:/python36/Scripts You clicked Yes You pressed Cancel All types of popups are objects of respective classes inherited from popup class. All of them have a common set of properties. These properties have a certain default value, and can be used to customize the appearance and behaviour of the popup objects. Following table lists the common parameters − Type Parameter Description Any *args Values to be displayed on the popup Str title Optional title for the window. (str, str) or None button_color Color of the buttons shown (text color, button color) Str background_color Window”s background color Str text_color text color Bool auto_close If True the window will automatically close Int auto_close_duration time in seconds to keep window open before closing it automatically Bool non_blocking If True then will immediately return from the function without waiting for the user”s input. Tuple[font_name, size, modifiers] font specifies the font family, size, etc. Tuple or Single string format ”name size styles”. Bool grab_anywhere If True can grab anywhere to move the window. (int, int) Location Location on screen to display the top left corner of window. Defaults to window centered on screen Bool keep_on_top If True the window will remain above all current windows Bool modal If True, then makes the popup will behave like a Modal window. Default = True Scrolled Popup The popup_scrolled() function generates a popup with a scrollable text box in it. Use this to display a large amount of text, consisting of many lines with number of characters more than the width. The size property is a tuple (w, h) with “w” being the number of characters in one line, and “h” being the lines displayed at a time. The horizontal/vertical scrollbar to the text box will become active if the number of characters/no of lines of text are more than “w” or “h”. In the following example, a big file zen.txt is displayed in a popup with scrollable text box. The file contains the design principles of Python called the “Zen of Python”. import PySimpleGUI as psg file=open(“zen.txt”) text=file.read() psg.popup_scrolled(text, title=”Scrolled Popup”, font=(“Arial Bold”, 16), size=(50,10)) It will produce the following output − Progress Meter The “one_line_progress_meter” is a popup that displays the visual representation of an ongoing long process, such as a loop. It shows the instantaneous value of a certain parameter, estimated time to complete the process, and the elapsed time. In the following example, a text file is read character by character. The Progress meter shows the progress of the process in the form of