QT5 : TrayIcon Fehler???
Re: QT5 : TrayIcon Fehler???
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.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
Ceterum censeo Goo..... esse delendam
-
- Foriker
- Beiträge: 189
- Registriert: Di 4. Nov 2014, 21:11
- Kontaktdaten:
Re: QT5 : TrayIcon Fehler???
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.
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
Re: QT5 : TrayIcon Fehler???
Ja, Ihr Programm kann nicht geschlossen werden, es sei denn, Sie schließen zuerst das TrayIcon.
gambas code
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)
Re: QT5 : TrayIcon Fehler???
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.
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
-
- Foriker
- Beiträge: 189
- Registriert: Di 4. Nov 2014, 21:11
- Kontaktdaten:
Re: QT5 : TrayIcon Fehler???
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
Re: QT5 : TrayIcon Fehler???
Vielen Dank,
ich werden Deinen Code übernehmen und am WE mal ausgiebig testen.
Ohne Dich wäre mir dieser Fehler wohl lange nicht aufgefallen.
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
Re: QT5 : TrayIcon Fehler???
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?
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
Re: QT5 : TrayIcon Fehler???
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
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 (72.92 KiB) 56 mal betrachtet
Ich bin Engländer und verwende Google Übersetzer. (Das tut mir leid)
Re: QT5 : TrayIcon Fehler???
Super, ganz lieben Dank für diese ausführliche Erklärung.
Ich werde versuchen, dass auch in meinen kleinen Programm einzubauen.
beste Grüße, Poly
Ich werde versuchen, dass auch in meinen kleinen Programm einzubauen.
beste Grüße, Poly
Ceterum censeo Goo..... esse delendam
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste