Two other types of windows exist.1. Persistent window - the Window.read() method returns and the window continues to be visible. This is good for applications like a chat window or a timer or anything that stays active on the screen for a while.2. Asynchronous window - the trickiest of the lot. Great care must be exercised. Examples are an MP3 player or status dashboard. Async windows are updated (refreshed) on a periodic basis. You can spot them easily as they will have a timeout parameter on the call to read. event, values = window.read(timeout=100)
You have a couple of options for dealing this with. If your operation can be broken up into smaller parts, then you can call Window.refresh() occasionally to avoid this message. If you're running a loop for example, drop that call in with your other work. This will keep the GUI happy and Window's won't complain.
IMPORTANT You will NOT see what you print until you call either window.read or window.Refresh. If you want to immediately see what was printed, call window.Refresh() immediately after your print statement.
The reasoning behind this is that Persistent Windows are often "forms". When "submitting" a form you want to have all of the fields left blank so the next entry of data will start with a fresh window. Also, when implementing a "Chat Window" type of interface, after each read / send of the chat data, you want the input field cleared. Think of it as a Texting application. Would you want to have to clear your previous text if you want to send a second text?
Let's say you do end up using non-blocking reads... then you've got some housekeeping to do. It's up to you to periodically "refresh" the visible GUI. The longer you wait between updates to your GUI the more sluggish your windows will feel. It is up to you to make these calls or your GUI will freeze.
There are 2 methods of interacting with non-blocking windows.1. Read the window just as you would a normal window2. "Refresh" the window's values without reading the window. It's a quick operation meant to show the user the latest values
Critically importantWhen creating a new window you must use a "fresh" layout every time. You cannot reuse a layout from a previous window. As a result you will see the layout for window 2 being defined inside of the larger event loop.
Immediately after typing the character 'w', the information to the right was displayed. No button needs to be clicked. You merely neeed to type in a valid experession and it will be displayed to you.... and it will be displayed on an on-going, constantly-refreshing-basis. 041b061a72