HomePython Mobile Programming in Python using PyS60: UI Controls
Mobile Programming in Python using PyS60: UI Controls
In this discussion I will focus on the basics of using a UI library provided by PyS60. The first section will focus on the types of controls. The second and third sections will be about two basic controls – query and note. In the fourth section, a simple application will be developed that uses the controls discussed in the second and third sections. That’s the agenda for this discussion.
Graphic user interfaces (GUIs) changed the way a program communicates with the user. It made applications interactive. Today, interactivity is the norm. Mobiles are no exceptions. PyS60 makes creating GUI-based applications easy. It can be thought of as one of the RAD environments for the Symbian OS.
Types of Controls
PyS60 provides controls or widgets (including dialogs) in two forms. They are Functions and Python types. Controls or widgets under the former are mostly methods, where as those in the latter category are Python objects implemented in C. Here are the details.
Functions: Many of the dialogs are implemented as functions. In PyS60, dialogs take precedence over the other controls, such as text boxes, list-boxes, etc. This means if a control and a dialog both need to be shown, then the dialog will be shown on top of the control, thus hiding the control. The examples of dialogs implemented as functions are note, query, multi_query etc.
Python types: The controls, such as text boxes, are implemented in C and directly accessed in PyS60. Their precedence is lower than the UI implemented as Functions. Text, Listbox, and Canvas are examples of Python types. These controls are displayed the instant they are set as part of the application’s body. In other words, these controls are not displayed until they have been registered as part of the application.
One of the controls is a dialog that has been implemented as a Python type. It is the Form control. That completes our discussion about the types of UI controls. Let's move on to next section.