Pop-up windows which can be used to interrupt the user by asking question or providing information.
Pop-ups can be called from an
Window object, for example:
app.info("info", "this is a guizero app")
Pop-ups can also be imported individually at the start of your program, for example:
from guizero import info info("info", "this is a guizero app")
These functions pop up a box on the screen that displays a message. The functions available are:
warn(title, text)- popup box with a warning icon
info(title, text)- popup box with an information icon
error(title, text)- popup box with an error icon
yesno(title, text)- popup box with yes and no options. Pressing
question(title, text, initial_value=None)- popup box with a question box which can accept a text response. Pressing
Okreturns value entered into the box is returned and pressing
All pop up boxes use the native display, so they will look different depending on your operating system.
This will pop up a warning box with the title
"Uh oh!" and the message
"You are almost out of biscuits!".
from guizero import App app = App(title="Biscuit monitor") app.warn("Uh oh!", "You are almost out of biscuits!") app.display()
On Windows, the box looks like this:
error boxes work in exactly the same way but will display different icons.
When this function is called it returns a boolean value.
Yeswas pressed, return
Nowas pressed, return
You can store this value in a variable and test it:
from guizero import App app = App(title="Snowman") build_a_snowman = app.yesno("A question...", "Do you want to build a snowman?") if build_a_snowman == True: app.info("Snowman", "It doesn't have to be a snowman") else: app.error("Snowman", "Okay bye...") app.display()
This code will first display the yes/no box
Yes is pressed, an information box will be displayed:
No is pressed, an error box will be displayed
Example: Using an alert as a callback
You can also use these functions in a callback (when you have to provide a function for another widget to call). Here is an example with a
PushButton which pops up an
info box when it is pressed.
from guizero import App, PushButton, info app = App() button = PushButton(app, command=app.info, args=["Info", "You pressed the button"]) app.display()
The arguments provided to the
- Where the button should be created (within the
- The name of the function to call when pressed (
- A list of the arguments to the function you are calling (values for the
messagearguments for the
Example: Do you really want to close?
You can use a
yesno box to check whether someone really wants to exit your app. If they click yes, the app is closed, if not, nothing happens and they can continue with what they were doing.
from guizero import App, Text # Ask the user if they really want to close the window def do_this_when_closed(): if app.yesno("Close", "Do you want to quit?"): app.destroy() app = App() title = Text(app, text="blank app") # When the user tries to close the window, run the function do_this_when_closed() app.when_closed = do_this_when_closed app.display()
Example: Asking a question
You can use a
question pop-up to get information from the user. In this example the user is asked to enter their name when a button is pressed.
from guizero import App, PushButton, Text def button_pressed(): name = app.question("Hello", "What's your name?") # If cancel is pressed, None is returned # so check a name was entered if name is not None: hello.value = "Hello " + name app = App() button = PushButton(app, command=button_pressed, text="Hello") hello = Text(app) app.display()