Elemento básico del interface de usuario.
Base : Objekt
Subclases directas : | AnimatorWidget | ButtonWidget | CloneWidget | EditWidget | ImageWidget | LabelWidget | NumberWidget | PadWidget | ProgressBarWidget | RadioButtonsWidget | RichTextWidget | ScrollBarWidget | ScrollViewWidget | StackWidget | TextWidget | WidgetArrayWidget | WidgetGroupWidget | WorldWidget |
Posibles hijos : | AnimatorWidget | AxisPadWidget | ButtonPadWidget | ButtonWidget | CloneWidget | EditWidget | ImageWidget | LabelWidget | NumberWidget | PopUpButtonWidget | ProgressBarWidget | PushButtonWidget | RadioButtonsWidget | RichTextWidget | ScrollBarWidget | ScrollViewWidget | ServerButtonWidget | StackWidget | TextWidget | Widget | WidgetArrayWidget | WidgetGroupWidget | WorldWidget |La clase Widget es la base de todos los widgets. Es una zona rectangular de la pantalla que puede tener una apariencia visual proporcionada por uno o más objetos de la clase FrameStyle.
Algunas clases de widgets tienen capacidad de respuesta a las acciones del usuario, como ButtonWidget, PadWidget o ScrollBarWidget.
Otras clases interesantes son WidgetGroupWidget que implementa una lista variable de widgets con su propio contenido, WidgetArrayWidget que reproduce un número variable de widgets idénticos y CloneWidget. Estas clases usan una composición de widgets de referencia, el atributo model, que se usa como prototipo o plantilla.
Otro tipo esencial de widget es WorldWidget, que representa un mundo (World), el escenario (Stage) y sus actores (Actor).
Algunos widgets tienen la capacidad de representar valores numéricos en forma escrita o gráfica, por ejemplo: LabelWidget, NumberWidget, ProgressBarWidget.
Todo widget puede tener la referencia a un objeto cualquiera que se considera su contexto. Es el especificado en el atributo display_object. Si no se especifica se usa el contexto del padre. El objeto puede ser conocido por las expresiones en tiempo de ejecución por el atributo de sólo lectura displayed.
Puede asociarse una máquina de estado a un widget con el atributo machine. Esto puede usarse para generar animaciones, interacciones con el usuario o controles generales del estado del juego.
Generalmente, las posiciones y tamaños de los widget se calculan automáticamente al representarse. Para ello se utilizan las propiedades de despliegue expand, horiz_align y vert_align que están relacionadas con las propiedades del widget padre spacing, flow, grid_columns y gravity.
Posición (en pixels virtuales) del widget relativo al padre. No se utiliza si el padre tiene un flow distinto de none.
Dimensiones (en pixels virtuales). La interpretación depende del valor del atributo expand.
Es la distancia entre el contenido y los límites del widget.
En caso de que flow sea horizontal o vertical, es la distancia mínima entre los hijos del widget medidos en la dirección de flow.
En caso de que flow sea horizontal, vertical o stack, indica la expansión del widget. Cuando un widget se expande, utiliza todo el espacio del widget padre que no está usado por otros widgets. Si hay más de un widget que se expande, se reparten el espacio disponible. Valores posibles:
Modo de distribución automática de los hijos:
Número de columnas en caso de que el flow sea grid.
En caso de que flow sea horizontal o vertical, indica el ajuste de la posición en la dirección de flow. Valores posibles:
Recorta el contenido del widget a sus dimensiones exactas. Si no, sobresale lo sobrante.
Conmutador que indica si el widget es visible o no. Si está oculto, tampoco se muestran sus hijos y todos los demás widgets se recolocan como si éste no existiera.
Máquina de estados asociada a este widget. Es la refwerencia a un objeto de clase WidgetMachine.
Objeto de contexto para este widget. Si no se especifica el contexto se hereda del padre.
Número entero que se envía como argumento se las señales generadas por este widget. Si su valor es 0 se usará el valor del padre.
El estilo o skin del widget, La clase del estilo depende de la clase del widget.
Para cuando se cambia de estilo, bien por cambio de estado natural del widget o por otra razón, se puede especificar aquí un número de pasos de la transición. Generalmente se produce un fundido progresivo, pero podría implementarse, en el futuro, otros tipos de transformación.