Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Diseño de aplicacion Responsive con Python
#1
Buenas tardes, como podría hacer una aplicación Responsive trabajando con python y tkinter ????
Responder
#2
Hola Alfredo, si por «responsive» te refieres a que los controles se achiquen o agranden según varía el tamaño de la ventana, puedes usar los métodos pack() o grid() para posicionar elementos en forma relativa. En cambio, si usas place(), la posición es siempre absoluta.

Un artículo sobre el tema: https://recursospython.com/guias-y-manua...n-tkinter/.

Saludos
Responder
#3
Hola Francisco, con "responsive" me refiero a que al colocar los botones y dimensionar mi aplicación, no hacerlo de forma absoluta. Si no con algún tipo de porcentaje teniendo en cuenta la resolución de la pantalla donde se esta ejecutando, no se si me explico. El problema que tengo es que desarrollo mi aplicación en mi PC y se ve bien, pero cuando la ejecuto en otro ordenador con otra resolución se mueve todo. El tema que me comentas de usar pack() o grid() es otro problema ya que estoy utilizando los métodos del canvas:
canvas.create_text() y canvas.create_window()

Estos métodos necesitan unas cordenadas X e Y donde pintar el texto o el control de usuario dentro del canvas, no se si hay alguna manera de trabajar como te digo con porcentajes relativos dentro del canvas o que...

Espero haberme explicado bien, un saludo y gracias.
Responder
#4
Bien, entonces ratifico lo que te comenté anteriormente. Respecto del canvas, puedes dibujarlo dentro de un Frame y posicionar este último vía grid() o pack().
Responder
#5
Entiendo que haya que posicionarlo con grid o pack pero como... ??

#Frame que pertenece a la primera pestaña
#Establecemos el tamaño del frame y su color de fondo
self.frame=tk.Frame(self.tab1, width=self.w, height=self.h)
self.frame.pack(expand=1, fill='both')

#Crea el canvas y pone la imagen de fondo
self.canvas = tk.Canvas(self.frame, width=self.w, height=self.h)
self.canvas.pack()
self.canvas.create_image(0, 0, image=self.background_image)

Yo posiciono así el frame y luego el canvas dentro de este, no termino de entender lo que quieres decirme.
Responder
#6
Básicamente lo que necesito Francisco, es que al redimensionar una ventana creada con tkinter, los elementos que hay en ella cambien de posición o sean mas grandes o mas pequeños, teniendo en cuenta siempre la resolución de la pantalla en la que se esta ejecutando.
No se si se puede manejar con un evento que se llame cada vez que la ventana cambie de tamaño o de que manera
Estoy teniendo problemas al ejecutar en otro pc la aplicacion que diseño en mi pc (en el que se ve perfectamente).
No se si me explico.
Responder
#7
¿Podrías poner un par de imágenes sobre cómo se ve tu aplicación y cuál es el aspecto deseado?
Responder
#8
No puedo poner imágenes Francisco, la idea es, que a partir de cierta resolución, los controles de usuario se ubiquen de forma diferente. Por ejemplo un botón y una etiqueta que están uno al lado del otro, si la ventana llega a medir menos de 200px, que pasen a situarse uno encima del otro, por poner un ejemplo básico. Como ocurre con las paginas web cuando las ejecutas en el navegador de un móvil. Para el tema del tamaño de los controles estoy utilizando el método "place()" y voy jugando con los atributos "relwidth" y "relheight".

Un saludo y gracias.
Responder
#9
Alfredo, eso no es posible usando ninguno de los sistemas de posicionamiento de Tk, hasta donde yo sé, al menos que lo programes explícitamente.

Saludos
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)