Aprendiendo a usar la librería Tkinter para Python, quiero hacer un primer ejemplo como el que vais a ver aquí hecho en Gambas.
Naturalmente en gambas me parece más sencillo. Todo es cuestión de acostumbrase y conocer como funciona.
He creado una clase que tiene un HBox, una etiqueta y una caja de texto. La he llamado Etibox.
Este es el código de la clase. Bien en el inicializador (como lo llaman en Python) o constructor.
He añadido el contenedor como Object, ya que no sé a primeras que tipo de contenedor va a tener.
Private contenedorh As HBox
Private etiqueta As Label
Private cajatexto As TextBox
Public Sub _new(contenedor As Object, texto As String)
contenedorh = New HBox(contenedor)
With contenedorh
.X = 0
.y = 0
.AutoResize = True
End With
etiqueta = New Label(contenedorh)
With etiqueta
.Text = texto
.Width = 100
.Height = 20
End With
cajatexto = New TextBox(contenedorh) As "CajadeTexto"
With cajatexto
.Width = 200
.Height = 20
End With
End
Public Sub CajadeTexto_KeyPress()
If Key.Code = Key.Enter Or Key.Code = Key.Return Then
Print cajatexto.Text
Endif
End
Private etiqueta As Label
Private cajatexto As TextBox
Public Sub _new(contenedor As Object, texto As String)
contenedorh = New HBox(contenedor)
With contenedorh
.X = 0
.y = 0
.AutoResize = True
End With
etiqueta = New Label(contenedorh)
With etiqueta
.Text = texto
.Width = 100
.Height = 20
End With
cajatexto = New TextBox(contenedorh) As "CajadeTexto"
With cajatexto
.Width = 200
.Height = 20
End With
End
Public Sub CajadeTexto_KeyPress()
If Key.Code = Key.Enter Or Key.Code = Key.Return Then
Print cajatexto.Text
Endif
End
El problema que me encontré fue luego la distribución de este componente y principalmente lo que quería es que según voy creando "Etibox's",
el formulario se va ajustando al tamaño de todas las etibox creadas dentro de un "contenedor".
Por ejemplo, en este formulario he usado un VPanel. os muestro la presentación de como queda y se ven perfectamente las flechas y propiedades
Y así es como se muestra:
Yo quiero que no se vea esa parte de abajo del formulario. Que se ajuste.
Este es el código: Que se va a repetir, prácticamente, solo cambia el contenedor.
Ahora uso un Panel..la solución aparentemente. Ya que Panel tiene la propiedad Arrangement, cosa que carece VPanel.
Este es el formulario:
Así se ve:
Y aquí el código del formulario con Panel.
Os subo el código para que lo probéis y para que deis vuestra idea.
Por ejemplo , por que usando la distribución de VPanel no va como quiero.
Saludos
LabelYCajadeTexto.tar.gz | ||
Descripción: | Descargar |
|
Nombre del archivo: | LabelYCajadeTexto.tar.gz | |
Tamaño: | 13.3 KB | |
Descargado: | 50 veces |
LabelYCajadeTexto.tar.gz | ||
Descripción: | Descargar |
|
Nombre del archivo: | LabelYCajadeTexto.tar.gz | |
Tamaño: | 13.3 KB | |
Descargado: | 50 veces |
LabelYCajadeTexto.tar.gz | ||
Descripción: | Descargar |
|
Nombre del archivo: | LabelYCajadeTexto.tar.gz | |
Tamaño: | 13.3 KB | |
Descargado: | 50 veces |