QT5 : TrayIcon Fehler???

Alle sonstigen Themen wie Fragen zur IDE, Fehler, Paketierung, ...
Poly
Foriker
Beiträge: 58
Registriert: Fr 17. Apr 2020, 12:46
Kontaktdaten:

Re: QT5 : TrayIcon Fehler???

Beitrag von Poly » Di 1. Okt 2024, 21:35

Ich glaube ich habe Dich schon verstanden.
D.h. Du hast nur den Code kopiert, aber nicht das Verzeichnis. Deshalb dann auch nicht mein schön, hässliches Icon.
Aber reicht das aus, um zu erkennen, warum der Code bei funktioniert und bei Dir nicht?
Na ja egal, ich nutze jetzt also eine geheime, nicht unterstützte Funktion und fühle mich mich wie dabei wie ein Stealth Warrior :D
Ceterum censeo Goo..... esse delendam

besenmuckel
Foriker
Beiträge: 189
Registriert: Di 4. Nov 2014, 21:11
Kontaktdaten:

Re: QT5 : TrayIcon Fehler???

Beitrag von besenmuckel » Mi 2. Okt 2024, 00:36

Hallo Poly,
funktioniert alles. Hab mal dies mit eingebaut, sonst bleibt das TrayIcon auf der Leiste und reagiert nicht mehr wenn ich das Programm über den Schließbutton in der Titelleiste beende. Evtl. auch noch zusätzlich eine Abfrage oder sperren falls gerade eine Aufnahme läuft.

Code: Alles auswählen

Public Sub Form_Close()
  
  ExitApp()
  
End

Bonus
Foriker
Beiträge: 132
Registriert: Mo 18. Mär 2024, 14:38
Kontaktdaten:

Re: QT5 : TrayIcon Fehler???

Beitrag von Bonus » Mi 2. Okt 2024, 13:18

Ja, Ihr Programm kann nicht geschlossen werden, es sei denn, Sie schließen zuerst das TrayIcon.
gambas code
Public Sub Form_Close()

  If hTrayIcon.Visible Then hTrayIcon.Hide

End
Ich bin Engländer und verwende Google Übersetzer. (Das tut mir leid)

Poly
Foriker
Beiträge: 58
Registriert: Fr 17. Apr 2020, 12:46
Kontaktdaten:

Re: QT5 : TrayIcon Fehler???

Beitrag von Poly » Mi 2. Okt 2024, 18:29

Hallo Besenmuckel,

herzlichen Dank, dass Du das Programm einmal ausprobiert hast und natürlich auch für das Erkennen des Fehlers sowie Deinen Lösungsvorschlag. Der Fehler ist mir nämlich überhaupt nicht bewusst gewesen.

@Bonus,

Danke auch Dir für Deine Lösung.


Ich habe zunächst Eure beiden Vorschläge gemeinsam in die Public Sub Form_Close() aufgenommen, aber ich denke das
ExitApp() von Besenmuckel reicht, oder?

Ich freue mich immer über Kritik, Hilfe und Lösungen und vor allem diese kleine aber feine Gambas-Community gefunden zu haben. :)
Zuletzt geändert von Poly am Fr 4. Okt 2024, 00:26, insgesamt 1-mal geändert.
Ceterum censeo Goo..... esse delendam

besenmuckel
Foriker
Beiträge: 189
Registriert: Di 4. Nov 2014, 21:11
Kontaktdaten:

Re: QT5 : TrayIcon Fehler???

Beitrag von besenmuckel » Do 3. Okt 2024, 14:05

Das TrayIcon hängen bleibt ist schon länger so. Vermutlich seit Gambas-Version 3.5 oder 3.8, kann das nicht mehr genau sagen. Oder es war auch schon immer so. Ob das jetzt aber ein Bug ist keine Ahnung. In meinen Programmen hatte ich es mit delete gelöst. Nach den delete noch ein Wait 0.3 eingefügt. Also auch so würde es gehen.

Code: Alles auswählen

Public Sub Form_Close()
  
  hTrayIcon.Delete
  Wait 0.3
  
End

Poly
Foriker
Beiträge: 58
Registriert: Fr 17. Apr 2020, 12:46
Kontaktdaten:

Re: QT5 : TrayIcon Fehler???

Beitrag von Poly » Fr 4. Okt 2024, 00:25

Vielen Dank,

ich werden Deinen Code übernehmen und am WE mal ausgiebig testen.
Ohne Dich wäre mir dieser Fehler wohl lange nicht aufgefallen.
Ceterum censeo Goo..... esse delendam

Poly
Foriker
Beiträge: 58
Registriert: Fr 17. Apr 2020, 12:46
Kontaktdaten:

Re: QT5 : TrayIcon Fehler???

Beitrag von Poly » Sa 16. Nov 2024, 18:50

Hi Bonus,

ich habe gerade Deine TrayIcon Funktion Deines Programmes GambasProcWatch getestet.
Dort hast Du es ja so gemacht, dass Du durch einen Klick mit der linken Maustaste auf das TrayIcon in der Taskleiste die Programmoberfläche wieder anzeigst und mit einen Klick auf die rechte Maustaste wird ein
PopUp-Menü geöffnet, in dem Du das Programm entweder beenden kannst oder aber wieder
in die Programmoberfläche springen kannst.
Das ist genau das was ich machen wollte.
Aber das TrayIcon hat doch kein Menu-Ereignis???
Ich verstehe nicht, wie Du es gemacht hast. Kannst Du das bitte noch mal erklären?

I have just seen the TrayIcon function of your GambasProcWatch programme.
There you have made it so that by clicking with the left mouse button on the tray icon in the taskbar
you can display the programme interface again and by clicking on the right mouse button a pop-up menu is
opened in which you can either close the programme or jump to the programme interface.
This is exactly what I wanted to do. But the tray icon does not have a menu event???
I don't understand how you did it. Can you please explain that again?
Ceterum censeo Goo..... esse delendam

Bonus
Foriker
Beiträge: 132
Registriert: Mo 18. Mär 2024, 14:38
Kontaktdaten:

Re: QT5 : TrayIcon Fehler???

Beitrag von Bonus » So 17. Nov 2024, 11:05

TrayIcon.PopupMenu

Tray1.PopupMenu = "mnuPrefs"

Es ist das Menü, das Sie erhalten, wenn Sie die Menütaste „Optionen“ drücken. im Formulardesigner „Menüeditor“ hinzugefügt

Sie verwenden kein „TrayIcon_Menu“-Ereignis.
Sie legen „TrayIcon.PopupMenu String“ einfach wie bei jedem anderen Steuerelement auf den gewünschten Menünamen fest.

ps, das TrayIcon und das Menü, das Sie verwenden möchten, müssen in derselben Klasse/Form sein, da wir eine Zeichenfolge mit dem Namen „mnuPrefs“ verwenden müssen, keinen Zeiger auf das eigentliche Menüobjekt mnuPrefs (der Interpreter kümmert sich darum).

Siehe beigefügtes Bild

Wenn ich das Menü ändern müsste, bevor es geöffnet wird, wie bei einem Menüereignis, könnte ich das Ereignis mnuPrefs_Show() verwenden.

Notiz:
Ich hatte ein Problem, das ich umgehen musste.

Wenn ich das Programm direkt in der Taskleiste gestartet und zunächst nicht das Hauptfenster geöffnet habe, wurden die Menüs nicht erstellt und nicht auf dem TrayIcon angezeigt.

Wenn das Programm jetzt in der Taskleiste startet, öffnet es das Hauptfenster und blendet es dann aus (es kann sein, dass es blinkt). Es sieht hässlich aus, aber zumindest wird das Menü dann ordnungsgemäß erstellt.

Ich mache es so in der Startup.class
gambas code
  FMain.Show
  If bTray Then
    FMain.Hide
    FMain.Form_Show  ' Ich musste dies hinzufügen, um die Dinge richtig zu initialisieren
    FMain.Tray1.Show
  Endif

Dateianhänge
Untitled.jpg
Untitled.jpg (72.92 KiB) 54 mal betrachtet
Ich bin Engländer und verwende Google Übersetzer. (Das tut mir leid)

Poly
Foriker
Beiträge: 58
Registriert: Fr 17. Apr 2020, 12:46
Kontaktdaten:

Re: QT5 : TrayIcon Fehler???

Beitrag von Poly » So 17. Nov 2024, 20:17

Super, ganz lieben Dank für diese ausführliche Erklärung. :)
Ich werde versuchen, dass auch in meinen kleinen Programm einzubauen. :D
beste Grüße, Poly
Ceterum censeo Goo..... esse delendam

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste