Autor |
Mensaje |
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Limitar El Tamaño Del Formulario A Unos Limtes
Buenos días!.
Viendo otros ejemplos de Tkinter de Python, comprobé que el formulario se puede limitar a un tamaño, tanto el horizontal
como el vertical. Evitando que el usuario pueda cambiar el tamaño del formulario y no salirse de esos limites.
Todo eso aplicado a un máximo y un mínimo. Por ejemplo queremos un formulario mínimo de 200 x 200 y un máximo de 640 x 480.
En el caso de Python, no es necesario de deshabilitar el botón de restablecer la ventana. ( Resizable ).
Quiero hacer lo mismo en gambas En este ejemplo he usado los limites máximos, no los mínimos.
He hecho uso de un temporizador y un observador. Después de salirse de los limites, pasado un tiempo se activa el botón de restablecer ventana,
pudiéndose volver a cambiar el tamaño dentro de los limites. También hay una salida de texto en consola para que se vea como va.
El efecto de la aparición del botón es raro. No es algo instantáneo. Pero cambia el estado a resizable, puede que no sea tan rápido de captar.
Os subo el código para que lo veáis en vuestro pc.
Saludos
Descripción: |
|
Descargar |
Nombre del archivo: |
LimitarTamaVentana.tar.gz |
Tamaño: |
12.74 KB |
Descargado: |
17 veces |
Descripción: |
|
Descargar |
Nombre del archivo: |
LimitarTamaVentana.tar.gz |
Tamaño: |
12.74 KB |
Descargado: |
17 veces |
Descripción: |
|
Descargar |
Nombre del archivo: |
LimitarTamaVentana.tar.gz |
Tamaño: |
12.74 KB |
Descargado: |
17 veces |
=================== Gambas Básico
"No es un bug, es una característica no documentada"
última edición por Shell el Lunes, 01 Febrero 2016, 10:01; editado 2 veces
|
#1 Viernes, 29 Enero 2016, 12:04 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Limitar El Tamaño Del Formulario A Unos Valores
Shell:
El mismo formulario tiene el evento: Form_resize() que detecta el cambio que haga el usuario del tamaño, y alli le puedes poner el código de la limitación del tamañom. No hace falta que crees el observador
|
#2 Viernes, 29 Enero 2016, 12:16 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Limitar El Tamaño Del Formulario A Unos Valores
Julio:
Citar:
El mismo formulario tiene el evento: Form_resize() que detecta el cambio que haga el usuario del tamaño, y alli le puedes poner el código de la limitación del tamañom. No hace falta que crees el observador
Si, hacen la misma función. Solo que sin ese temporizador no pude cambiar el estado de resizable a True,
para que vuelva al estado inicial la ventana y sea modificable su tamaño dentro de los limites.
Quedando de está forma:
Se le podría agregar un wait, pero hay que tener "tino" para acertar con el tiempo adecuado.
Wait no provoca buen efecto...salta..
Siempre prefiero usar un Timer, mejor que usar Wait.
En Python usando Tkinter es de esta forma:
from tkinter import *
ventana= Tk()
# Ancho x alto y la separación de los bordes izquierdo y superior de la pantalla
ventana.geometry('640x480+100+150')
ventana.title('Ajusta mis dimensiones')
ventana.maxsize(640, 480)
ventana.minsize(200, 200)
ventana.mainloop()
Como ves es sencillo, choca al principio como crea las dimensiones de la ventana. Es una cadena.
En este caso el código de gambas es todo el código del ejemplo, en el de Python, usa clases y métodos.
Abreviando mucho. Lo que es la POO.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
última edición por Shell el Viernes, 29 Enero 2016, 14:26; editado 3 veces
|
#3 Viernes, 29 Enero 2016, 14:12 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Limitar El Tamaño Del Formulario A Unos Valores
Creo que es más simple:
No hay por qué cambiar lo de resizable. El efecto en pantalla es gracioso (No confundir el formulario con la ventana que lo contiene)
=================== No podemos regresar
|
#4 Viernes, 29 Enero 2016, 15:00 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Limitar El Tamaño Del Formulario A Unos Valores
Shordi:
Si tu cambias el tamaño del formulario sobrepasando los limites, ves como el formulario se agranda con el botón izquierdo pulsado y sin soltarlo.
La idea es que no pueda visualmente el formulario cambiarse mas allá de los limites. El efecto muelle es otra cosa.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#5 Sabado, 30 Enero 2016, 01:01 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Limitar El Tamaño Del Formulario A Unos Valores
Citar: Si tu cambias el tamaño del formulario sobrepasando los limites, ves como el formulario se agranda con el botón izquierdo pulsado y sin soltarlo.
No. Ves la ventana contenedora del formulario sobrepasando los límites. El formulario deja de expandirse o contraerse al alcanzar el límite. Al soltar el ratón, la ventana se ajusta y hace el muelle.
Tal vez no es lo que buscas pero es lo mismo. La única razón para limitar el tamaño de un formulario es o bien que no tape algo que hay detrás o bien que no oculte algo que hay dentro. La solución que aporto soluciona ambos casos. El resto es sólo estética... dudosa (me gustan los muelles)
=================== No podemos regresar
|
#6 Sabado, 30 Enero 2016, 01:15 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Limitar El Tamaño Del Formulario A Unos Valores
Shordi:
Siendo el mismo sistema operativo, no veo por que no deberían hacer el mismo efecto dos lenguajes distintos. Siendo cosas tan comunes.
En el ejemplo se estudiaba la creación de dos ventanas y se hacían operaciones con ellas. Se superponían, se cambiaba el orden como se veían,
temas comunes que a veces ni nos fijamos. Ni vamos directamente a ello, lo hacemos sin pensarlo, mientras usamos las ventanas.
Otra cosa es que quieras algo concreto. Si tienes ventanas dentro una de otras y quieres una distribución de las mismas dentro de la principal,
entonces si se debe conocer el comportamiento de las ventanas.
Comprendo que cada lenguaje tiene sus maneras de hacer las cosas y los programadores a veces nos obsesionamos con hacer las cosas de la misma
forma, cuando puede haber otra maneras de llegar al mismo resultado.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#7 Sabado, 30 Enero 2016, 10:59 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Limitar El Tamaño Del Formulario A Unos Valores
Creo que hemos visto esto ya una vez.
Cuestión: Tengo una ventana1 y una ventana2 dentro de ventana1. ¿ Puede la ventana2 recibir eventos ?.
¿ Por qué no puedes cambiar el tamaño de la ventana2 con el ratón ?.
¿ Por qué no vemos el titulo de la ventana2 ?.
Con un proyecto de consola, usamos el componente gb.qt4 o gb.gui.qt4.
Código:
Public Sub Main()
Dim ventana1, ventana2 As Window
ventana1 = New Window As "hventana1"
With ventana1
.Caption = "Ventana1"
.Width = 200
.Height = 200
.Background = Color.LightGray
.Show()
End With
ventana2 = New Window(ventana1) As "hventana2"
With ventana2
.Caption = "Ventana2"
.Width = 100
.Height = 100
.Background = Color.Blue
.Show()
End With
End
Public Sub hventana1_MouseDown()
Print "Has hecho click dentro de la ventana1"
End
Public Sub hventana2_MouseDown()
Print "Has hecho click dentro de la ventana2"
End
¿ Qué nos dirá si hacemos clic dentro de la ventana 2 ?.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
última edición por Shell el Sabado, 30 Enero 2016, 11:41; editado 3 veces
|
#8 Sabado, 30 Enero 2016, 11:35 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Limitar El Tamaño Del Formulario A Unos Valores
Pues dirá: "Has hecho click dentro de la ventana2".
No sé a dónde vas, pero deberías sacarlo a un hilo nuevo, que esto no tiene nada que ver con lo del tamaño.
=================== No podemos regresar
|
#9 Sabado, 30 Enero 2016, 12:33 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Limitar El Tamaño Del Formulario A Unos Valores
Volviendo al tema original:
Citar: Siendo el mismo sistema operativo, no veo por que no deberían hacer el mismo efecto dos lenguajes distintos. Siendo cosas tan comunes.
Prueba ésto:
=================== No podemos regresar
|
#10 Sabado, 30 Enero 2016, 12:46 |
|
|
|