Páginas (2): 1 2   
Shordi   11-02-2023, 11:42
#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
tincho   11-02-2023, 12:55
#2
Gracias Shordi.
¿Al final de la serie tendremos un PicPanel unificado con un RoundPanel?

1 Saludo.
Shordi   11-02-2023, 13:43
#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
Harpo   06-03-2023, 10:28
#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)
Shordi   06-03-2023, 15:05
#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: 3)
Última modificación: 06-03-2023, 15:06 por Shordi.

No podemos regresar
Harpo   06-03-2023, 17:24
#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.
Shordi   06-03-2023, 19:14
#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
Shordi   06-03-2023, 21:08
#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
Harpo   06-03-2023, 21:31
#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.
tincho   06-03-2023, 22:23
#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.
Páginas (2): 1 2   
  
Usuarios navegando en este tema: 3 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.