Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Presentando PicPanel y PicToolButton
#1

Aquí tenéis la segunda entrega de la serie de vídeos sobre cómo manejar una estética distinta en Gambas3. En este ocasión se muestra el ejemplo de uso de los controles Picpanel y PicToolButton.

Espero que os sirva.



Saludos

No podemos regresar
[-] Los siguientes 4 usuarios dicen gracias a Shordi por este post:
  • Grandamakulo, guizans, portaro, tincho
    ¡Gracias!
#2

Gracias Shordi.
¿Al final de la serie tendremos un PicPanel unificado con un RoundPanel?

1 Saludo.
[-] Los siguientes 1 usuarios dice gracias a tincho por este post:
  • portaro
    ¡Gracias!
#3

(11-02-2023, 12:55)tincho escribió:  Gracias Shordi.
¿Al final de la serie tendremos un PicPanel unificado con un RoundPanel?

Nope. Tras incontables intentos no he conseguido hacer una imagen con bordes redondeados... Creo que la mejor posibilidad sería usar algo así como imagemagick y crear la imagen en tmp en tiempo de ejecución o lo que sea... pero no he sido capaz.

Si alguien sabe cómo (no vale CSS) estaré eternamente agradecido.

Saludos

No podemos regresar
[-] Los siguientes 1 usuarios dice gracias a Shordi por este post:
  • portaro
    ¡Gracias!
#4

(11-02-2023, 13:43)Shordi escribió:  
(11-02-2023, 12:55)tincho escribió:  Gracias Shordi.
¿Al final de la serie tendremos un PicPanel unificado con un RoundPanel?

Nope. Tras incontables intentos no he conseguido hacer una imagen con bordes redondeados... Creo que la mejor posibilidad sería usar algo así como imagemagick y crear la imagen en tmp en tiempo de ejecución o lo que sea... pero no he sido capaz.

Si alguien sabe cómo (no vale CSS) estaré eternamente agradecido.

Saludos



Buenos días,
Yo encontré una manera, la propiedad Brush de la clase Paint es del tipo PaintBrush y según la ayuda de Gambas hay 4 métodos que la devuelven en Paint, dos de ellos son Paint.Color y Paint.Image. Con este último se puede asignar una imagen de relleno y después pintar.
Le dejo un RoundPanel versión 2, con propiedad "Picture", se puede usar un color o una imagen de fondo, quedaría algo así:

[Imagen: eCjXH9P.png]

Tiene un pequeño problema, en QT5 funciona correctamente, en GTK3 distorsiona la imagen.
Un saludo y perdón por la foto utilizada, por esa no tengo que pagar derechos de autor Big Grin .
Harpo.


Archivos adjuntos
.gz RoundPanel 0.0.2.tar.gz Tamaño: 608.38 KB  Descargas: 4
[-] Los siguientes 3 usuarios dicen gracias a Harpo por este post:
  • portaro, Shordi, tincho
    ¡Gracias!
#5

Maravilloso. La clase Paint es terreno virgen para mí. Estamos muy limitados por la falta de documentación los sufridos gamberos...
Tu solución es perfecta. Sólo he modificado un par de cositas para adecuarlas a la idea que yo tengo del Roundpanel, a saber:

- He cambiado la propiedad Picture por la propiedad Image de tipo Image. ¿Por qué? porque si Paint trabaja con image, ¿para qué estar convirtiendo? Se supone que la diferencia es que picture se almacena en el servidor gráfico e Image se almacena en memoria... aunque no tengo muy claro qué implica eso y si sería mejor tejemanejear pictures para ahorrar memoria o qué. De momento lo dejo así para hacer el código más simple y comprensible

- He añadido la propiedad Stretch de tipo boolean, para que la imagen se adapte al tamaño del control... o no, según convenga.

- He modificado la propiedad Border, de boolean a Border, de manera que se pueda elegir el borde como en un panel normal. Las propiedades BorderColor, etc, sólo tendrán sentido cuando se le asigne un border.plain al control, claro. Esto tiene sentido cuando el panel no tiene imagen de fondo que cuando le pones imagen no se nota casi si es Raised o Sunken o inexistente.

Ahora sí que se comporta como buscaba y creo que deja totalmente obsoleto el control PicPanel que tenía hecho. Aunque creo que éste pasará a llamarse PicPanel porque es más significativo, creo, el tener una imagen de fondo que el tener las esquinas redondeadas... RoundPicPanel, me parece excesivo...

Ahora vamos a sacarle jugo a este pequeño tesoro.

Saludos y muchísimas gracias.


Archivos adjuntos
.gz RoundPanel-0.0.3.tar.gz Tamaño: 9.31 KB  Descargas: 2

No podemos regresar
[-] Los siguientes 2 usuarios dicen gracias a Shordi por este post:
  • Harpo, portaro
    ¡Gracias!
#6

Ha sido un placer ayudarle, la verdad es que ese control fue algo "rápido y sucio", alguien en el foro preguntó por un panel con bordes redondeados y yo llevaba un tiempo probando la clase Border y sus posibilidades con Paint, le faltan varias cosas: controlar Radius y BorderWith, ajustar las propiedades "Client" en función de Radius...

A ver qué tal le quedan ahora esos controles.
Un saludo, Harpo.
[-] Los siguientes 1 usuarios dice gracias a Harpo por este post:
  • portaro
    ¡Gracias!
#7

(06-03-2023, 17:24)Harpo escribió:  Ha sido un placer ayudarle, la verdad es que ese control fue algo "rápido y sucio", alguien en el foro preguntó por un panel con bordes redondeados y yo llevaba un tiempo probando la clase Border y sus posibilidades con Paint, le faltan varias cosas: controlar Radius y BorderWith, ajustar las propiedades "Client" en función de Radius...

A ver qué tal le quedan ahora esos controles.
Un saludo, Harpo.

Oído, cocina.

Saludos

No podemos regresar
[-] Los siguientes 1 usuarios dice gracias a Shordi por este post:
  • portaro
    ¡Gracias!
#8

Hecho. Ahora se comporta como un panel normal pero respetando el Radius de las esquinas y demás.
Me gustaría que lo probaseis porque el cálculo de la ubicación de los contenidos al Radius de las esquinas y demás lo he hecho bastante a ojímetro... por lo que no sé qué puede ocurrir en otras máquinas que no sean la mía.

Saludos


Archivos adjuntos
.gz RoundPanel-0.0.4.tar.gz Tamaño: 9.67 KB  Descargas: 3

No podemos regresar
[-] Los siguientes 3 usuarios dicen gracias a Shordi por este post:
  • Harpo, portaro, tincho
    ¡Gracias!
#9

(06-03-2023, 19:14)Shordi escribió:  
(06-03-2023, 17:24)Harpo escribió:  Ha sido un placer ayudarle, la verdad es que ese control fue algo "rápido y sucio", alguien en el foro preguntó por un panel con bordes redondeados y yo llevaba un tiempo probando la clase Border y sus posibilidades con Paint, le faltan varias cosas: controlar Radius y BorderWith, ajustar las propiedades "Client" en función de Radius...

A ver qué tal le quedan ahora esos controles.
Un saludo, Harpo.

Oído, cocina.

Saludos

jajajajaja
Me refería a que YO me dejé muchas cosas cosas en el tintero a la hora de construir el control.
Mañana probaré que tal funciona y le cuento.

Saludos.
[-] Los siguientes 2 usuarios dicen gracias a Harpo por este post:
  • portaro, Shordi
    ¡Gracias!
#10

Felicitaciones, un gran trabajo.
No se si se podra hacer pero ¿Seria posible decirle al panel que esquinas se redondearan?
En el ejemplo de mas abajo agregue un panel a modo de barra de botones, mas oscura, y redondeo ambos panels pero quedaria mas parecido a gtk3 si la "botonera" redondea solo las esquinas superiores y por el contrario el panel de abajo solo las inferiores.

[Imagen: 6dunzXZ.png]

1 Saludo.
[-] Los siguientes 1 usuarios dice gracias a tincho por este post:
  • portaro
    ¡Gracias!


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)