gambaslinux.fr

Les Contrôles › Label

Voici une série de tutoriel sur le Label.

Vous saurez:

Comment ajouter un Label

Le Label permet d'ajouter des textes a votre fenetre.
Vous pouvez le modifier dynamiquement pendant l'execution de votre application

Pour creer un label cliquez sur le bouton LABEL ( symbolise par le A) sur la boite Widget

Drag and Drop d'un texte

Nous allons creer une fenetre Form avec un label1 et une textbox1.
Lorsque l'utilisateur selectionnera le texte dans la textbox et la fera glisser avec la souris, le label changera et dira que le texte se deplace.Puis lorsqu'il arrivera sur le label1 on dira que l'action est finie.

Commencons par la creation de la fenetre : rien de bien compliqué.
N'oubliez pas que le widget label1 doit avoir sa propriété DROP a la valeur TRUE

puis passons au code :

creons une fonction drag sur la textbox1 pour autoriser un deplacement :

PUBLIC SUB TextBox1_Drag()
label1.text = "Je suis entrain de deplacer le texte..."
END


creons une fonction DROP pour la reception de l'evenement drag :

PUBLIC SUB Label1_Drop()
Label1.text = "Ca y est j'ai fini!"
 END


voila c fini !
Lancer l'application, selectionner le texte dans la textbox1 et deplacez le en maintenant le clic gauche enfoncé, le label1 change, etonnant non ? et bien non, C'est ca gambas, simple et intuitif !

Utliser le label sur un écran tactile

 

Avec l'entree dans l'ere des ecrans tactiles je me suis penché sur la possibilité de rendre un programme gambas avec une interface tactile.

Tout d'abord il faut avoir une dalle tactile. Por ma part j'ai utilisé la Egalaxy que l'on trouve pratiquement partout sur le net.

Ensuite il faut calibrer la dalle avec le paquet "calibrate touchscreen" disponible dans les depots de vos distributions linux.


copiez ou créez le fichier  /etc/X11/xorg.conf.d/99-calibration.conf pour rendre la calibration permanente.

Nous voila fin prêt pour utiliser notre dalle avec gambas.

Il faut savoir qu'une dalle tactile n'est en fait qu'une souris améliorée, aussi tous les evènements sont les mêmes que les evènements MOUSE.

A savoir :

Appuie du doigt correspond à mousedown
glisser du doigt correspond à mousemouve ou mousedrag
relachement du doigt correspond à mouseup

Voici une petite application en GB2 pour incrémenter un compteur ou décrémenter à l'aide d'un mouvement de doigt.

Et voici le code de l'application:

Private debut As Integer
Private fin As Integer


Public Sub _new()
End

Public Sub Form_Open()
Me.Center
End

Public Sub Label1_MouseMove()
Label2.Text = Mouse.x
debut = Mouse.X
End

Public Sub Label1_MouseDown()
Label3.Text = Mouse.X
fin = Mouse.X
End

Public Sub Label1_MouseUp()
Label4.Text = Mouse.x
If fin > debut + 30 Then Dec LCDNumber1.Value
If fin < debut - 30 Then Inc LCDNumber1.Value
If debut - 10 = fin + 10 Then LCDNumber1.Value = LCDNumber1.Value
End

Utiliser la commande LAST et les groupes

 


Aujourd'hui pour notre exemple, nous allons nous intéresser à plusieurs astuces.
Je souhaite réaliser une application avec des labels qui feront office de boutons de couleur.
Lorsque je passe dans le bouton, je souhaite qu'il ait une autre couleur de fond (noir par exemple) , puis lorsque je le quitte, je souhaite qu'il reprenne sa couleur de fond initiale.
Et ceci sur 6 boutons comme le montre la photo ci dessus.



A) L'evènement ENTER (la souris rentre dans la surface du label)

Lorsque la souris rentre dans le label, la méthode ENTER est exécutée. Nous pourrons donc écrire le code à cet endroit.

B) L'évènement LEAVE (la souris quitte la surface du label)

Lorsque la souris quitte le label, la méthode LEAVE est exécutée. Nous pourrons donc écrire le code à cet endroit aussi.

C) La commande LAST.

Cette commande est vraiment pratique, elle est en quelque sorte la mémoire du dernier widget utilisée.
Vous pouvez ainsi récupérer plusieurs données comme :
Last.Tag = récupère le dernier texte présent dans la propriété TAG
Last.Text = récupère le dernier texte présent dans la propriété TEXT
Last.Background = récupère le dernier nombre présent dans la propriété BACKGROUND, etc...

Nous avons compris maintenant :

Dans la méthode ENTER, nous allons écrire ce code :

Last.background = Color.Black


Dans la méthode LEAVE, nous allons écrire ce code :

Last.background = CInt(Last.tag)


Pourquoi last.tag ?
J'ai au préalable renseigné la propriété TAB de chaque label avec le code couleur du label à l'origine.
Par exemple DARKGREEN correspond à la valeur integer : 32768.

Comment sais-je quel est son code couleur? tapez simplement dans la page de code color. comme l'image ci-dessous :


et vous verrez dans la documentation le code correspondant.

Cint vous permet de convertir en INTEGER la valeur présente dans le TAG.

D) La notion de groupe


Enfin, la notion de groupe est très importante en Gambas. Elle vous permet de réunir plusieurs widgets ensembles.
Dans la propriété GROUP de chaque label , renseignez un nom (ici bb )
Du coup un seul évènement sera créé pour l'ensemble des labels, ce qui allègera considérablement votre code.

E) Récupérer quel label a été cliqué.

Enfin, pour connaître quel bouton a été cliqué, utilisez la commande LAST comme tout à l'heure.
Nous l'afficherons dans une boite de message comme ceci :

Message.Info(Last.Text & "," & Last.tag)


Notez que pour le label, l'evènement click n'existant pas, nous utiliserons l'évènement mousedown.

Voici le code de cette application:

Public Sub bb_Enter()
Last.background = Color.Black
End

Public Sub bb_Leave()
Last.background = CInt(Last.tag)
End

Public Sub Form_Open()
Me.Center()
End

Public Sub bquit_Click()
Me.Close()
End

Public Sub bb_MouseDown()
Message.Info(Last.Text & "," & Last.tag)
End

 


Merci pour votre attention.

Tutoriel sur le clignotement d'une Led avec un Label

 

changercouleur.png


Bonjour,
Aujourd'hui nous allonsvoir comment faire clignoter un Label vide de son texte . Il donnera l'apparence d'une LED, petit signal visuel très pratique pour votre application.

Créez un label , ajoutez lui une propriété BORDER = RAISED, une propriété BACKGROUD = &H000000& .
Créez maintenant 2 boutons, un pour allumer, un pour eteindre notre LED.
un timer est indispensable dans votre programme dès que vous avez besoin d'une fonction faisant intervenir le temps.
Le luxe est même d'ajouter un slider qui nous fera varier la vitesse de notre clignotement.

Vous pourrez télécharger plus bas l'application exemple.

Maintenant voici le code de notre application que je vais commenter en rouge:

' Gambas class file

PUBLIC SUB _new()
END

PUBLIC SUB Form_Open()
ME.Center 'centre la fenetre
END

PUBLIC SUB Timer1_Timer() 'cette fonction est le clignotement par lui meme
SELECT CASE lled.Background
CASE &h000000&
lled.Background = &h00FF00&
CASE &h00FF00&
lled.Background = &h000000&
END SELECT
END

PUBLIC SUB bon_Click() 'bouton de demarrage clignotement
Timer1.Enabled = TRUE
END

PUBLIC SUB boff_Click() 'bouton arret
Timer1.Enabled = FALSE
END

PUBLIC SUB Slider1_Change()'variation du slider entrainant variation de vitesse clignotement
Timer1.Delay = Slider1.Value
END



TELECHARGER L'EXEMPLE ICI

Les Propriétés du Label

Au travers de cette petite application en exemple je vous propose de découvrir les propriétés du label avec quelques petits exemples de code en illustration .

mylabel.png

' Gambas class file

PUBLIC SUB _new()
END

PUBLIC SUB Form_Open()
ME.Center
END

PUBLIC SUB bquit_Click()
ME.Close
END

PUBLIC SUB Button1_Click()
Label1.X = Label1.X + 4
END

PUBLIC SUB Button2_Click()
Label1.X = Label1.X - 4
END

PUBLIC SUB Button4_Click()
Label1.y = Label1.y + 4
END

PUBLIC SUB Button3_Click()
Label1.y = Label1.y - 4
END

PUBLIC SUB Button5_Click()
Label1.Width = Label1.Width - 4
END

PUBLIC SUB Button6_Click()
Label1.Width = Label1.Width + 4
END

PUBLIC SUB Button7_Click()
Label1.Height = Label1.Height - 4
END

PUBLIC SUB Button8_Click()
Label1.Height = Label1.Height + 4
END

PUBLIC SUB CheckBox1_Click()
SELECT CASE Label1.Visible
CASE TRUE
Label1.Visible = FALSE
CASE FALSE
Label1.Visible = TRUE
END SELECT
END

PUBLIC SUB Button9_Click()
Label1.ToolTip = TextBox1.Text
END

PUBLIC SUB Button10_Click()
Label1.Text = TextBox2.text
END

PUBLIC SUB ColorChooser1_Change()
Label1.Background = ColorChooser1.Value
END

PUBLIC SUB ComboBox1_Change()
Label1.Mouse = ComboBox1.Text
END

PUBLIC SUB ComboBox2_Change()
Label1.Border = ComboBox2.Text
END

PUBLIC SUB FontChooser1_Change()
Label1.Font = Font[FontChooser1.Value]
END

PUBLIC SUB Label1_Drop()
Label1.Text = TextBox3.Text
END

PUBLIC SUB TextBox3_Drag()
LAST.Text = TextBox3.Text
END

 

TELECHARGER L'APPLICATION

Documentation Officielle

Pour en savoir plus sur le Label rendez-vous dans la documentation officielle:

https://gambaswiki.org/wiki/comp/gb.qt4/label?l=fr

Wiki

Une Aide sur le Label dans le Wiki :

https://gambas-fr.org/wiki/Label

Le formulaire ne contient aucun champ.