Librerías: EasyAndFastGUI - librería para crear interfaces gráficas - página 28

 

Se ha publicado una nueva versión(v2.14):

  1. Se ha añadido el elemento TimeRanges para visualizar los rangos de negociación en el tiempo.
  2. Varias correcciones menores reportadas por los usuarios de la biblioteca.
  3. Añadidos nuevos ejemplos de interfaces gráficas.


 
Anatoli Kazharski #:

Nueva versión publicada(v2.14)

Por favor, incrustar una función similar.

// Visualización interactiva de la matriz como una tabla GUI.
bool CreateTable( const matrix &Matrix, const string &ColNames[] )


Para que este tipo de código conciso funcione.

#include <EasyAndFastGUI\Simple.mqh> // https://www.mql5.com/es/code/19703

void OnInit()
{
  matrix Matrix;
  string ColNames[];
  
  CreateTable(Matrix, ColNames); // Función de Simple.mqh
}

EAF_SIMPLE // Esta macro de Simple.mqh contiene un conjunto estándar de funciones On para la interactividad GUI.


Algo así como hacer un análogo de GraphPlot enfoque, pero para las matrices y de forma interactiva. Lo que falta son visualizaciones rápidas para diferentes tipos de datos, tan simple como sea posible en la sintaxis.

 
fxsaber #:

Por favor, incluya una función similar.

...

Para que este código conciso funcione.

...

Algo así como hacer un análogo de GraphPlot enfoque, pero para las matrices y de forma interactiva. Lo que falta son visualizaciones rápidas para diferentes tipos de datos, tan simple como sea posible en la sintaxis.

Gracias por la interesante sugerencia.

La he añadido a la lista de tareas. Lo discutiremos más a fondo cuando esté listo para empezar a trabajar en ello.

 

Se ha publicado una nueva versión(v2.15):

  • Escalado automático de la GUI en función de la configuración de su sistema operativo(DPI).
  • Algunas correcciones de errores menores.

En qué se diferencia la segunda versión de la biblioteca de la primera
.

  1. Todas las imágenes de los elementos GUI están digitalizadas y ahora no necesitas una carpeta con imágenes. Puedes descargar el archivo de imágenes de la versión anterior si necesitas un conjunto personalizado de imágenes con las que trabajar.
  2. Mejora significativa en el procesamiento de flujos de eventos. En la versión anterior había un retraso notable si había muchos elementos. Ahora todo funciona muy rápido con cualquier número de elementos.
  3. Se ha añadido la posibilidad de cambiar el esquema de colores de la interfaz gráfica de usuario. En esta versión es posible cambiar rápidamente entre temas claros y oscuros durante el trabajo de la aplicación MQL ya lista.
  4. Se ha integrado un nuevo elemento(C3DBase) de la librería estándar(CCanvas3D) para trabajar con gráficos 3D.
  5. ElementoTimeRanges para la visualización de rangos temporales de negociación.
  6. Modo multiventana. Ahora se puede elegir entre la conmutación libre y el modo modal.
  7. Escalado automático de la interfaz gráfica en función de la configuración de su sistema operativo (DPI).
  8. Estructura modificada de las carpetas y archivos de la biblioteca. Ahora todos los archivos están categorizados.
  9. La segunda versión estápreparada para MT4.
  10. Hay métodos de creación rápida para todos los elementos. Casi todos los elementos con parámetros predeterminados pueden crearse ahora con una sola línea de código.

Las siguientes capturas de pantalla muestran la diferencia a escala 100% y 125% (en la configuración del sistema operativo):

//---

Las imágenes están en alta resolución. Así que incluso a escala 400%(8K UHD) se verán muy bien.

 

Nueva versión publicada(v2.15):

  • Escalado automático de la interfaz gráfica en función de la configuración de su sistema operativo(DPI).
  • Varias correcciones menores.

¿Cuál es la diferencia entre la segunda versión de la biblioteca y la primera?

  1. Todas las imágenes de los elementos de la interfaz gráfica se han digitalizado y ahora no es necesario disponer de una carpeta con imágenes. Puede descargar el archivo de imágenes de la versión antigua si necesita un conjunto de imágenes personalizado para trabajar.
  2. Mejora significativa en el manejo de flujos de eventos. En la versión anterior, había un retraso notable si había muchos elementos. Ahora todo funciona muy rápido con cualquier número de elementos.
  3. Añadida la posibilidad de cambiar el esquema de colores de la GUI. En esta versión, es posible cambiar rápidamente entre temas claros y oscuros mientras se ejecuta una aplicación MQL ya preparada.
  4. Integrado un nuevo elemento(C3DBase) de la librería estándar(CCanvas3D) para trabajar con gráficos tridimensionales.
  5. El elemento TimeRanges para la visualización de rangos temporales de negociación.
  6. Modo multiventana. Ahora puede elegir entre la conmutación libre y el modo modal.
  7. Escalado automático de la interfaz gráfica en función de la configuración de su sistema operativo(DPI).
  8. La estructura de carpetas y archivos de la biblioteca ha cambiado. Ahora todos los archivos están categorizados.
  9. La segunda versión viene con una versión MT4 lista para usar.
  10. Todos los elementos tienen métodos de creación rápida. Ahora casi todos los elementos con parámetros por defecto pueden crearse con una sola línea de código.

Las capturas de pantalla a continuación muestran la diferencia a escala 100% y 125% (en la configuración del sistema operativo):


//---

Imágenes en alta resolución. Es decir, incluso a una escala del 400%(8K UHD), se verán muy bien.

 

Hola Anatoli,

¡Gracias por la actualización!

Por favor, ¿podría compartir cómo utilizar estas imágenes ditized GUI?

Para explame para estos EA,

En el que los recursos se utilizan apuntando a la carpeta Imaga .. ¿Cómo se podría resolver?


¡Gracias!

 

Lo siento,

Estoy viendo el ejemplo EAF 001,

En la versión 2.14 el explame tiene este código



y en la 2.15 tiene este código

por lo que estoy entendiendo que Images\EasyAndFastGui\\Icons han cambiado.

Cuando actualicé a la nueva versión 2.15, no se descargó ninguna carpeta de imágenes.

¿Podrían ayudarme?

Gracias

 

Otro problema que tengo es que no puedo cambiar el tamaño del botón Y cuando trabajo con un grupo de botones (funciona bien con un solo botón).

V 2.14 Ejemplo 001

//--- Grupo de botones 1

string text1[] = {"BOTON 1", "BOTON 2"};

CCoreCreate::CreateButtonsGroup(m_buttons1, m_frame1, 0, 10, 40, text1);

m_buttons1.SelectButton(1);

m_buttons1.ButtonYSize(80); /¡Agregado por mí!

Esta última línea de código no tiene efecto.

También he probado

m_buttons1.YSize(80)


¡Gracias por tu ayuda!

 
Facundo Laje #:

...

Cuando actualizo a la nueva versión 2.15, no se descargó ninguna carpeta Image.

¿Podrían ayudarme?

Gracias

A los usuarios de la librería EasyAndFastGUI 2. 0, les envío un archivo con imágenes de alta resolución si lo solicitan en mensajes privados.

Para los controles, no son necesarias, ya que están digitalizadas e integradas en el código de la biblioteca. Pero se pueden utilizar en elementos personalizados, como se muestra en los ejemplos de código que vienen con la biblioteca.

Le enviaré un archivo con imágenes en mensajes privados.

 
Facundo Laje #:

Otro problema que tengo es que no puedo cambiar el tamaño del botón Y cuando trabajo con un grupo de botones (funciona bien con un solo botón).

...

Gracias por su ayuda.

¡Gracias por el mensaje!

La solución estará en la próxima actualización.

Para hacer los cambios necesarios a ti mismo en este archivo:

MQL5\Include\EasyAndFastGUI\Core\Create\Include\Buttons\ButtonsGroup.mqh

elimine esta línea (altura para el botón por defecto):

  //--- Propiedades de los botones
  static void SetDefaultButtonParams(CButton &obj, const color label_clr, const color border_clr) {
    
    obj.YSize(20);
    obj.LabelColor(label_clr);
    obj.LabelColorHover(label_clr);
    obj.LabelColorPressed(label_clr);
    obj.BorderColor(border_clr);
    obj.BorderColorHover(border_clr);
    obj.BorderColorPressed(border_clr);
  }

//---

Entonces será posible establecer la altura de todos los botones en el grupo de esta manera:

  //--- Grupo de botones 1
  string text1[] = {"BUTTON 1", "BUTTON 2"};
  m_buttons1.ButtonYSize(25);
  CCoreCreate::CreateButtonsGroup(m_buttons1, m_frame1, 0, 10, 40, text1);
  m_buttons1.SelectButton(1);