Widget

Heredado por: VAbstractBrowser , VAbstractDataView, VBoundFieldComboBox, VBoundFieldEdit, VBoundFieldListBox, VCheckBox, VClockWidget, VComboBox, VCWebView, VDataCatcherEdit, VDateEdit, VDateTimeEdit, VDial, VGaugeWidget, VGroupBox, VImageWidget, VLabel, VLineEdit, VListBox, VNumberSpinBox, VProgressBar, VPushButton, VRadioButton, VSlider, VSplitter, VStackedWidget, VSvgButton, VSvgSlideSwitch, VSvgToggleSwitch, VSvgWidget, VTabWidget, VTextEdit, VThermometerWidget, VThumbWheel, VTimeEdit, VToolBox, VTreeMenu, VTreeWidget.

La clase base de todos los widgets/ventanas.

Indice de propiedades

Boolean acceptDrops

String accessibleDescription

String accessibleName

Boolean autoFillBackground

Number contextMenuPolicy

Boolean enabled

Boolean focus

Number focusPolicy

QFont font

Boolean fullScreen

Number height

Boolean isActiveWindow

Boolean maximized

Number maximumHeight

Number maximumWidth

Boolean minimized

Number minimumHeight

Number minimumWidth

Boolean modal

Boolean mouseTracking

String statusTip

String styleSheet

String toolTip

Boolean updatesEnabled

Boolean visible

String whatsThis

Number width

String windowIconText

Boolean windowModified

Number windowOpacity

String windowTitle

Number x

Number y

Funciones

Generales

Retorno

Función

Boolean

void

void

void

void

void

setDisabled( Boolean disable )

void

setEnabled( Boolean enable )

void

void

setHidden( Boolean hidden )

void

setStyleSheet( String szStyleSheetText )

void

setVisible( Boolean visible )

void

setWindowModified( Boolean modified )

void

setWindowTitle( String szTitle )

void

void

void

void

void

void

De calendario

void setCalendarStyle(String colorFondo, String colorTexto, String DíasSemana, String CadenaDiaMeses, Array fechas)

Señales

Señal

Gana foco

Pierde foco

Ratón: botón doble-click

Ratón: botón pulsado

Ratón: botón soltado

Ratón: movimiento

Tecla pulsada

Tecla soltada

Ventana movida

Ventana redimensionada

Documentación de propiedades

acceptDrops

Establece si el widget o control permite evento drop. Estableciendo esta propiedad a verdadero, anunciamos al sistema que el widget es capaz de aceptar el evento drop si está disponible.

accessibleDescription

Contiene la descripción del widget tal y como la ven las tecnologías de asistencia a la accesibilidad.

accessibleName

Contiene el nombre del widget tal y como la ven las tecnologías de asistencia a la accesibilidad.

autoFillBackground

Devuelve true si el fondo del widget se rellena automáticamente.

contextMenuPolicy

Contiene el valor numérico que identifica cómo el widget muestra el menú de contexto.

enabled

Indica si el widget está habilitado. Un widget habilitado gestiona las acciones de teclado y ratón. Un widget deshabilitado no. Algunos widgets se muestran de forma distinta en función de si están deshabilitados, por ejemplo, mostrándose en gris.

focus

Contiene si el widget tiene el foco para recibir el input del teclado.

focusPolicy

Contiene la forma en que el widget acepta el foco para el teclado. Ver enum FocusPolicy de la clase QWidget de Qt.

font

Devuelve un objeto QFont con la fuente del control.

Ejemplo de como poner en negrita la fuente de un control:

var edit = theRoot.dataView().control("EDIT");

var fontedit = edit.font;

fontedit.setBold(true);

edit.font = fontedit;

fullScreen

Contiene si el widget se muestra en modo pantalla completa. Un widget en pantalla completa ocupa todo el área de la pantalla y no muestra decoraciones de ventana como la barra de título.

height

Contiene el alto del widget excluyendo el marco de la ventana.

isActiveWindow

Contiene si la ventana en la que se encuentra el widget es la ventana activa. La ventana activa es la ventana que contiene el widget que tiene el foco del teclado (la ventana puede tener foco aunque no tenga widgets o los que tenga no acepten foco del teclado). Cuando una ventana de popup está visible, la propiedad es verdadera tanto para la ventana activa como para la ventana del popup.

maximized

Contiene si el widget está maximizado. Esta información únicamente es relevante para Windows. Debido a limitaciones en determinados sistemas operativos, esta propiedad no siempre reporta los resultados esperados (por ejemplo, si el usuario en Linux con X11 maximiza la ventana vía el gestor de ventanas, no hay forma de distinguir esto de un cambio de tamaño cualquiera).

maximumHeight

Contiene el alto máximo del widget en píxeles.

maximumWidth

Contiene el ancho máximo del widget en píxeles.

minimized

Contiene si el widget está minimizado. Esta propiedad sólo es relevante en Windows.

minimumHeight

Contiene la altura mínima del widget en píxeles.

minimumWidth

Contiene el ancho mínimo del widget en píxeles.

Contiene si el widget es modal. Esta propiedad sólo tiene sentido en Windows. Un widget modal previene que los widgets de otras ventanas puedan tener input.

mouseTracking

Contiene si está habilitado el seguimiento del ratón. Si el seguimiento del ratón está desactivado, el widget sólo recibe los eventos de movimiento del ratón cuando por lo menos uno de los botones del ratón está presionado mientras e mueve el ratón. Si el seguimiento del ratón está activado, el widget recibe los eventos de movimiento del ratón aunque los botones no estén apretados.

statusTip

Contiene el texto de la barra de estado del widget.

styleSheet

Contiene la hoja de estilo del widget. La hoja de estilo contiene una descripción de las personalizaciones en texto del estilo del widget tal y como se definen las hojas de estilo.

toolTip

Contiene el texto de tooltip.

updatesEnabled

Contiene si el repintado está habilitado.

visible

Contiene si el wigdet es visible.

whatsThis

Devuelve la información de ayuda.

width

Contiene el ancho del widget excluyendo cualquier marco que lo incluya.

windowIconText

Contiene el texto de icono del widget. Esta propiedad sólo tiene sentido en Windows. Si no hay texto de icono, la función retorna una cadena vacía.

windowModified

Devuelve true si el documento mostrado en la ventana tiene cambios pendientes.

windowOpacity

Contiene el nivel de opacidad de la ventana. El rango válido es desde 1.0 (completamente opaco) hasta 0.0 (completamente transparente).

windowTitle

Contiene el título de la ventana (caption). Esta propiedad sólo tiene sentido para widgets de primer nivel, tales como ventanas o cuadros de diálogo.

x

Contiene la coordenada x de la posición del widget relativa a su padre, incluyendo los marcos.

y

Contiene la coordenada y de la posición del widget relativa a su padre, incluyendo los marcos.

Documentación de funciones

Funciones generales

Boolean close()

Cierra el widget. Retorna verdadero si el widget pudo ser cerrado, en caso contrario false.

void hide()

Oculta el widget. Esta función es equivalente a setVisible( false ).

void lower()

Baja el widget hasta el fondo del widget padre. Después de llamar a esta función, se encontrará visualmente detrás (y por tanto oculto) de los widgets hermanos.

void raise()

Sube el widget arriba del todo del widget padre. Después de llamar a esta función el widget estará visualmente delante de otros widgets hermanos.

void repaint()

Repinta el widget inmediatamente. Se recomienda usar esta función sólo si se desean realizar animaciones, para el resto de casos se recomienda el uso de la función update().

void setDisabled( Boolean disable )

Inhabilita la entrada de eventos si está como verdadero, en caso contrario, permitirá la entrada de eventos.

Parámetros:

  • disable: booleano que configura si está deshabilitado. true deshabilita, false habilita.

void setEnabled( Boolean enable )

Habilita la entrada de eventos si está como verdadero, en caso contrario, no permitirá la entrada de eventos.

Parámetros:

  • enable: booleano que configura si está habilitado. true habilita, false deshabilita.

void setFocus()

Lleva el foco del teclado al widget si este widget o uno de sus padres es una ventana activa. Si la ventana no está activa, el widget recibirá el foco cuando la ventana se convierta en activa.

void setHidden( Boolean hidden )

Oculta el widget. Equivalente a setVisible(!hidden).

Parámetros:

  • hidden: booleano que configura si se oculta. true oculta, false muestra.

void setStyleSheet( String szStyleSheetText )

Establece la hoja de estilo css para el widget.

Parámetros:

  • szStileSheetText: cadena que contiene el código CSS que se aplicará.

void setVisible( Boolean visible )

Muestra el widget. Equivalente a setHidden(!shown).

Parámetros:

  • shown: booleano que configura si se muestra. true muestra, false oculta.

void setWindowModified( Boolean modified )

Establece que ha habido modificaciones en el widget que están pendientes de guardar.

Parámetros:

  • modified: booleano que configura si ha habido modificaciones. true establece que ha habido modificaciones, false establece que no ha habido modificaciones.

void setWindowTitle( String szTitle )

Establece el título de la ventana (caption). Ver más información en la propiedad windowTitle.

Parámetros:

  • szTitle: cadena que se utilizará como título.

void show()

Muestra el widget y los widgets hijos. Es equivalente a la función SetVisible( true ).

void showFullScreen()

Muestra el widget en modo pantalla completa. Esta función sólo tiene sentido en ventanas. Para retornar del modo pantalla completa, debemos llamar a la función showNormal(). El modo pantalla completa funciona bien en Windows, pero tiene ciertos problemas bajo X11. Estos problemas se deben a limitaciones del protocolo ICCCM que especifica la comunicación entre los clientes X11 y el gestor de ventanas. ICCCM simplemente no entiende el concepto de ventanas a pantalla completa y no decoradas. Por tanto, la mejor manera de hacer esto en Linux es mover la ventana y cambiar el tamaño para ocupar la pantalla completa. Dependiendo del gestor de ventana, esto podría funcionar o no.

void showMaximized()

Muestra el widget maximizado. Esta función sólo puede usarse con ventanas. En X11, esta función puede no funcionar como esperamos con ciertos gestores de ventanas.

void showMinimized()

Muestra el widget minimizado, como un icono. Esta función sólo se puede usar con ventanas.

void showNormal()

Restaura el widget después de haber sido maximizado o minimizado.

void update()

Refresca el widget excepto en el caso de que esté inhabilitado el refresco o esté oculto. Esta función no fuerza un repintado automático, en vez de esto programa un evento de pintado que se realizará junto con el resto de eventos que estén pendientes, optimizando el repintado.

Funciones de calendario

void setCalendarStyle(String colorFondo, String colorTexto, String DíasSemana, String CadenaDiaMeses, Array fechas)

Permite configurar la interfaz de los días de un control de tipo calendario. Equivale al comando de instrucción de proceso Interfaz: Establecer estilo de los días de calendarios.

Parámetros:

  • colorFondo: cadena con el color de fondo a aplicar al calendario. Podemos especificar, o bien su valor hexadecimal (ejemplo: "#FFFFFF"), o bien su nombre (ejemplo: "white"). Este parámetro es opcional. Si no se especifica, no se aplicará ningún color de fondo al día o días que se configuren en el resto de los parámetros de la función.

  • String colorTexto: cadena con el color de texto a aplicar al calendario. Podemos especificar, o bien su valor hexadecimal (ejemplo: "#FFFFFF"), o bien su nombre (ejemplo: "white"). Este parámetro es opcional. Si no se especifica, no se aplicará ningún color de texto al día o días que se configuren en el resto de los parámetros de la función.

  • String DíasSemana: cadena con los números de día de 1 a 7 o letras para los días a los que se aplicará el estilo separados por comas:

    • De 1 a 7, día de la semana de lunes a domingo.

    • "H" o "T" para aplicar estilo al día de hoy (admitir mayúsculas y minúsculas). Ejemplo: "1,2,3,4,5".

    • "S" para aplicar estilo al día seleccionado en el calendario (admitir mayúsculas y minúsculas).

    • Este parámetro es opcional, si no se especifica, no se aplicará a ningún día.

  • String CadenaDiaMeses: cadena con los días y meses del año a los que se aplicará el estilo en todos los años, separados por comas y con el formato (d/M), ejemplo: "1/1,02/02,10/10". Este parámetro es opcional, si no se especifica nada, no se aplicará a ningún día/mes en concreto.

  • Array fechas: En este parámetro podremos especificar, o bien un dato de tipo fecha o bien un array con las fechas a las que aplicar el estilo. Este parámetro es opcional, si no lo aplicamos, no se aplicarán los colores configurados a ninguna fecha concreta.

Es funcional solamente en el nuevo motor Javascript, así que, para poder usarla, se debería activar la clave beta jsEngine en cada estación cliente.

Ejemplos

1. Poner en negrita la fuente de un control

var edit = theRoot.dataView().control("EDIT");
var fontedit = edit.font;
fontedit.setBold(true);
edit.font = fontedit;

2. Manejador de evento que pone en negrita el texto del botón que lo dispara

//theSender devuelve el control que lanza la señal que dispara el manejador
var btn = theSender;
var fontBtn = btn.font;
fontBtn.setBold(true);
btn.font = fontBtn;

3. Personalizar los colores de texto de un calendario de un control de edición de fecha con botón menú y calendario

En un manejador de evento de un formulario vamos a personalizar los siguientes colores de días del calendario de un control de tipo calendario. Personalizaremos los colores de los siguientes días:

Días laborables (de lunes a viernes).

Fines de semana y festivos (sábados, domingos y festivos del año).

Para destacar los días 1 de cada mes.

Para destacar el día actual.

Para destacar el día seleccionado en el calendario.

Además, disponemos de una variable local array con las fechas de los días festivos del año.

//Leer obtener controles personalizables del formulario
var formulario = theRoot.dataView();
var control = formulario.control("CAL");

//Generar array de fechas
var tamArray = theRoot.varToInt("TAMAÑO");
var fechas = [];

for (var i = 0; i < tamArray; i++) {
  fechas.push( new Date(theRoot.varToDate("FECHAS_ARRAY", i)));
}

//Aplicar colores días laborables

control.setCalendarStyle("darkgreen", "#FFFFFF", diasSemana, "1,2,3,4,5");

//Aplicar colores días festivos y findes	

control.setCalendarStyle("darkred", "white", "6,7", null , fechas);

//Aplicar colores día 1 de cada mes
control.setCalendarStyle("green", "black", null , "1/1,1/2,1/3,1/4,1/5,1/6,1/7,1/8,1/9,1/10,1/11,1/12");

//Aplicar colores hoy
control.setCalendarStyle("#FFFFFF", "blue", "h");

//Aplicar colores día seleccionado
control.setCalendarStyle("darkyellow", "orange", "s");

Última actualización