[SOLVED] QSystemTrayIcon und Taskleiste Frage

Alles rund um die Programmierung mit Qt
Antworten
QGuy
Beiträge: 3
Registriert: 8. Juli 2010 22:41

[SOLVED] QSystemTrayIcon und Taskleiste Frage

Beitrag von QGuy »

Hallo, ich habe vor einigen Tagen den Einstieg in QT gefunden und finde dieses Framework einfach klasse :)

Und zwar habe ich eine Frage zu QSystemTrayIcon, das TrayIcon selbst funktioniert, aber ich möchte wenn man auf das TrayIcon klickt, dass das Widget (mein App also) unten rechts am Desktop zu sehen ist, wie auf dem Bild:
(der Pfeil darf ignoriert werden)

Bild

Es Funktioniert ja wie man sieht, aber leider etwas statisch, da ich die Position selbst setze:

Code: Alles auswählen

    int x = QApplication::desktop()->width() - 215;
    int y = QApplication::desktop()->height() - 195;
    this->setGeometry(x, y, 215, 155);
Das ist nun mal genau auf die Windows 7 Taskleiste abgestimmt, auf meinem XP Pc hängt das Fenster zu weit oben :/

Wie mache ich es nun so, dass das Fenster an die korrekte Position gesetzt wird? (unabhängig von der größe der Taskleiste)

Kann man zur Not die Größe der Taskleiste auslesen?


Ich hoffe ihr könnt mir da weiter helfen :)


Achja, wie kann ich das Programm aus der Taskleiste entfernen?

Wenn es sichtbar ist, ist es in der Taskleiste zu sehen, wenn es nicht sichtbar ist, dann nicht.

Mir wäre es lieber, wenn es gar nicht in der Taskleiste auftaucht, gibt ja auch keinen Grund dazu.

Ich habe es schon mit Qt::SubWindow ausprobiert, es funktioniert auch, aber wenn ich das Programm dann mit close() schließe, ist es zwar weg, läuft als Prozess aber weiter.


Ich hoffe ihr könnt mir bei meinen zwei Problemen weiterhelfen

Danke schonmal
Zuletzt geändert von QGuy am 9. Juli 2010 20:49, insgesamt 1-mal geändert.
QGuy
Beiträge: 3
Registriert: 8. Juli 2010 22:41

Beitrag von QGuy »

*pusch* kommt Leute, ich brauche Hilfe
bbt
Beiträge: 29
Registriert: 2. Februar 2010 19:21

Beitrag von bbt »

Hmm was machst du wenn die Taskleiste nciht unten sondern Oben oder an der Seite ist?

Vll. solltest du dir was anderes überlegen
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Weil du selber zu faul bist, selber einen klitzeklitzekleinen Blick in die Doku zu werfen, werden andere angegraunzt und zur Hilfe genötigt.
Sry, klingt hart, ist aber so.

Aber vllt. kommst du ja nur mit dem Assistant nicht zurecht.
QApplication::desktop() -> QDesktipWidget -> da steht so viel, und gleich am Anfang ein "availableGeometry()", was hier gleich meine beiden (!) Panels (oben Menu, unten Tasks) meines Plasma-Desktops subtrahiert.

Aber pinzipiell solltest du dir überlegen, ob der User bei einem Fenster, das einfach unten rechts aufpoppt, den Zusammenhang zu deinem Traycon herstellen kann. Warum kannst du nicht das Fenster direkt über dem TrayIcon platzieren? Sollte nur ein bisschen rumgerechne sein (bedenke aber, dass manche Desktops den Tray frei platzieren lassen, ungebunden an ein Panel, auch kann das Panel unten oben rechts links sein, usw.
QGuy
Beiträge: 3
Registriert: 8. Juli 2010 22:41

Beitrag von QGuy »

entschuldigung, dass ich als Anfänger nicht sofort alles durchblicke...

ich war ja schließlich schon bei der Desktopgröße angelangt.

und der Kalender poppt direkt über dem TrayIcon auf, den zusammenhang sollte man eigentlich schon begreifen.

Aber die Ideen sind gut, dass die Taskleiste oben/unten/links/rechts sein könnten, vllt. baue ich dafür noch eine Überprüfung ein.

mit der Geometrie vom TrayIcon lässt sich ja feststellen wo es ist.


Hm danke soweit erstmal, hat mir sehr geholfen.


PS: das mit der Sichbatkeit in der Taskleiste funktioniert nun auch.

Dazu muss man

Code: Alles auswählen

Qt::Subwindow
benutzten und die WidgetAttribute ändern:

Code: Alles auswählen

this->setAttribute(Qt::WA_QuitOnClose);
Antworten