Gambas France BETA


Pas de compte ? Incription

ToolTip

Ce sujet est résolu.

12
AuteurMessages
valaquarus#1 Posté le 1/4/2024 à 13:13:59
-- Unus Ex Altera --Bonjour,
question : est il possible de changer un tooltip à la volée (pendant l'exécution) et comment ?
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.5
vuott#2 Posté le 1/4/2024 à 14:21:33
Ne cedere ineluctabili possimusPouvez-vous clarifier votre question ? :|
« Vita non suavis esse potest, nec Mors amara. »
spheris#3 Posté le 1/4/2024 à 16:08:37
1
monwidget.tooltip = "lala"
?
valaquarus#4 Posté le 1/4/2024 à 16:13:07
-- Unus Ex Altera --Bonjour Vuott,
oui, je voudrais modifier un tooltip en fonction d'un changement dans un champ quelconque pour adapter le tooltip en fonction du changement opéré.
Par exemple ceci :

Ciao vuott,
Sì, vorrei modificare una descrizione di strumenti in base a una modifica in qualsiasi campo per adattare la descrizione degli strumenti in base alla modifica apportata.
Ad esempio questo:

1
2
3
PUBLIC SUB ComboBox1_Click()
TrayIcon1.Tooltip = TrayIcon1.Tag & "\n\t" & ComboBox1.Text
END

Le texte du combobox changeant je veux récupérer cette valeur pour la mettre dans le tooltip.

Il testo del mutevole combobox voglio recuperare questo valore per metterlo nella descrizione.

Il est évident que si je pose la question c'est que ceci ne fonctionne pas et ne se met pas à jour.

È ovvio che se faccio la domanda è che questo non funziona e non si aggiorna.
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.5
spheris#5 Posté le 2/4/2024 à 01:06:29
Valaquarus,
C'est bizarre ce que tu écris car le code proposé fonctionne très bien chez moi avec une combo et un bouton.
Par contre je mets le changement de texte tooltip dans l'évènement Change du combo et non le clic:


1
2
3
PUBLIC SUB caffect_Change()
Button1.Tooltip = "bobi aime le café"
END


Peut être que le problème se situe sur un Bug du TrayIcon.
valaquarus#6 Posté le 2/4/2024 à 09:41:58
-- Unus Ex Altera --Bonjour Sphéris,
c'était ma première idée mais avec le trayicon ça ne fonctionne pas.
Le choix du click pour le combobox vient de ce que celui-ci est en lecture seule (le change ne fonctionne pas, dans ce cas).
Ceci fonctionne, mais ce que je veux obtenir c'est la mise à jour du ComboBox1 qui ne se fait pas dans la ligne TrayIcon1.ToolTip.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
PUBLIC SUB ComboBox1_Click() 'sélection dans la liste des radios

ind = ComboBox1.Index
$sStationChoisie = saStationUrl[ind]
ComboBox1.Text = ComboBox1.List[ind]
$DrawingArea1.Clear
$TextArea1.Clear
TrayIcon1.Tooltip = TrayIcon1.Tag '& "\n\t" & ComboBox1.Text '<---------' la partie commentée ne se met pas à jour le reste, oui
ToggleButton1.Value = FALSE
WAIT 'pour attendre la bascule
ToggleButton1.Value = TRUE

END

PUBLIC SUB TrayIcon1_Scroll(Delta AS FLOAT, Orientation AS INTEGER) '<----------' le combobox1.index est bien modifié et récupéré dans l'évènement précédent.

ComboBox1.Index += CInt(Delta)' * Orientation

END


La limitation doit venir soit du TrayIcon soit du ToolTip.
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.5
linuxos#7 Posté le 2/4/2024 à 19:39:42
Un peu de sel, de poivre et la crevette sera... valaquarus,

Peut-etre qu'il est necessaire de force le 'refresh' de l'objet TrayIcon, ou au pire des pires, le detruire et le recréer a la volée.

Olivier
Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous.
valaquarus#8 Posté le 2/4/2024 à 20:43:20
-- Unus Ex Altera --Oui Linuxos,
c'est une piste que je vais essayer et je rapporterai les résultats
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.5
valaquarus#9 Posté le 3/4/2024 à 11:05:12
-- Unus Ex Altera --Retour d'essais, tous infructueux.
C'était une piste que j'avais entrevue, Olivier me l'a fortement conseillé. Mais je n'y arrive pas pourtant c'était logique, il faut attendre la fin de la boucle des évènements pour relancer le TrayIcon.ToolTip avec de nouvelles informations, oui, mais où et quand ?
Je passe en résolu, sans réponse, pour ne pas encombrer l'espace mais si quelqu'un a une idée flamboyante qu'il n'hésite pas.
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.5
linuxos#10 Posté le 3/4/2024 à 13:16:23
Un peu de sel, de poivre et la crevette sera... valaquarus,

Pour forcer la boucle d'événement, il faut utiliser la commande WAIT XX (genre WAIT 0.30).
Cela laissera du temps a boucle d'événement de traiter sa pile, et donc de rafraichir l'affichage, etc....

Olivier
Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous.
valaquarus#11 Posté le 3/4/2024 à 14:06:45
-- Unus Ex Altera --Bonjour Linuxos,
c'est exactement ce que je voulais faire mais cela ne fonctionne pas même après destruction du TrayIcon et recréation de celui-ci.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
PUBLIC SUB ComboBox1_Click() 'sélection dans la liste des radios

ind = ComboBox1.Index
$sStationChoisie = saStationUrl[ind]
ComboBox1.Text = ComboBox1.List[ind]
TrayIcon1.Tooltip = TrayIcon1.tag & "\n" & "- Radio :" & "\t" & ComboBox1.Text
$DrawingArea1.Clear
$TextArea1.Clear
ToggleButton1.Value = FALSE
WAIT 'pour attendre la bascule
ToggleButton1.Value = TRUE

END

PUBLIC SUB TrayIcon1_Scroll(Delta AS FLOAT, Orientation AS INTEGER)

DIM pos AS INTEGER

pos = CInt(Delta) * Orientation
TrayIcon1.Hide
'TrayIcon1.Delete
WAIT
'DefTrayIcon '<---------------' recréation du TrayIcon1 à la volée
TrayIcon1.Show
ComboBox1.Index += pos

END


Hide & show au moins ne plantent pas mais ne mettent pas à jour le combobox.text. Seule la valeur du premier combobox.text reste inscrite dans le TrayIcon1.ToolTip.
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.5
linuxos#12 Posté le 4/4/2024 à 00:03:04
Un peu de sel, de poivre et la crevette sera... Attention, il y a une petite subtilité avec WAIT

WAIT seul n'est pas suffisant pour rafraichir ou gere la souris par exemple.

Je te conseille de commencer large, Ex: WAIT 1 (pour 1 seconde) et puis de descendre petit a petit.

Je te laisse voir si cela change quelque chose

Olivier
Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous.
valaquarus#13 Posté le 4/4/2024 à 00:37:29
-- Unus Ex Altera --Bonsoir Olivier,
malheureusement j'ai testé et ça ne fonctionne pas.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
PUBLIC SUB ComboBox1_Click() 'sélection dans la liste des radios

ind = ComboBox1.Index
$sStationChoisie = saStationUrl[ind]
ComboBox1.Text = ComboBox1.List[ind]
TrayIcon1.Tooltip = TrayIcon1.Tag & "\n" & "- Radio :" & "\t" & ComboBox1.Text
$DrawingArea1.Clear
$TextArea1.Clear
ToggleButton1.Value = FALSE
WAIT 'pour attendre la bascule
ToggleButton1.Value = TRUE

END

PRIVATE SUB DefTrayIcon()

TrayIcon1 = NEW TrayIcon AS "TrayIcon1"
TrayIcon1.Tag = "- Cliquer gauche :\tfenêtre.\n- Cliquer droit :\tmenu.\n- Roulette :\t\tstations."
TrayIcon1.Picture = Picture.Load("icon:/32/administrator")
TrayIcon1.PopupMenu = "Menu1"

END

PUBLIC SUB TrayIcon1_Scroll(Delta AS FLOAT, Orientation AS INTEGER)

DIM pos AS INTEGER

pos = CInt(Delta) * Orientation
demoliTray()
ComboBox1.Index += pos

END

PRIVATE SUB demoliTray()

TrayIcon1.Delete
WAIT 1
DefTrayIcon()
TrayIcon1.Show

END

Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.5
valaquarus#14 Posté le 4/4/2024 à 01:12:09
-- Unus Ex Altera --Juste histoire de s'amuser un peu, ceci fonctionne, à un détail près, je me retrouve avec plusieurs TrayIcon mais à chaque fois le toolTip correspond bien :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
PUBLIC SUB TrayIcon1_Scroll(Delta AS FLOAT, Orientation AS INTEGER)

DIM pos AS INTEGER

pos = CInt(Delta) * Orientation
demoliTray()
ComboBox1.Index += pos

END

PRIVATE SUB demoliTray()

' TrayIcon1.Delete '<-----------------' ligne commentée
DefTrayIcon()
TrayIcon1.Show

END
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.5
linuxos#15 Posté le 4/4/2024 à 18:40:25
Un peu de sel, de poivre et la crevette sera... valaquarus,

J'ai créer un petit projet pour tester le TrayIcon.

Au final cela ne fonctionne pas, aucun ToolTip apparait a l'écran, sur mon bureau MATE - Fedora 38

Je sais que par le passé Benoit a eu beaucoup de mal a fixer le TrayIcon avec les differents bureau de Linux.
Il a du passer pas des appels DBUS pour gérer ça

En tout cas sur MATE - Fedora38 le Tooltip ne s'affiche pas mais le reste fonctionne: Menu, Icone

Olivier
Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous.
12