QTrayIcon transparent

Alles rund um die Programmierung mit Qt
Antworten
nicmoe
Beiträge: 18
Registriert: 8. November 2008 19:29
Kontaktdaten:

QTrayIcon transparent

Beitrag von nicmoe »

Hi,

ich habe mal wieder eine Frage :oops:
Folgendes: Mir scheint es als würde QTrayIcon unter WindowsXP nicht funktionieren. Wenn ich den Code unter Vista compiliere, und laufen lasse, erscheint ein Icon und wenn ich die exe dann unter XP laufen lasse, ist kein Icon da sondern nur Transparenz.
Unter Linux läuft mein Programm auch mit Icon, deshalb muss das ganze wohl an XP liegen, oder daran, dass ich unter Vista für XP compiliere...

Ist da irgendein Fehler bekannt?

MfG

nic
1+1=0;
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

code oder am besten das projekt für solche sachen mitposten.
nicmoe
Beiträge: 18
Registriert: 8. November 2008 19:29
Kontaktdaten:

Beitrag von nicmoe »

Das ganze Projekt wäre etwas komliziert, weil das mehr als 700 zeilen irrelevanter code sind ;)

aber hier die methode für das icon:

Code: Alles auswählen

void setupIcon()
{
	 appIcon = new QIcon;
	 appIcon->addFile(":/anime1.ico");
	 setWindowIcon(*appIcon);
	 createActions();
	 createTrayIcon(appIcon);
}

Code: Alles auswählen

void createTrayIcon(QIcon * icon)
{
trayIconMenu = new QMenu(this);
trayIconMenu->addAction(minimizeAction);
trayIconMenu->addAction(restoreAction);
trayIconMenu->addSeparator();
trayIconMenu->addAction(quitAction);
trayIcon = new QSystemTrayIcon(this);
trayIcon->setContextMenu(trayIconMenu);
connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(restoreFromTray(QSystemTrayIcon::ActivationReason)));
trayIcon->setIcon(*icon);
trayIcon->show();
}
wie gesagt, das funktioniert auch wunderbar unter jedem System außer WindowsXP...

Ich hoffe das nützt was.

Edit: Ich habe auf Windows XP testweise das QSystemTrayIcon Example gestartet. Da waren ebenfalls keine Icons zu sehen! Scheint wohl ein allg. Problem zu sein?
1+1=0;
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

Nein ist kein generelles problem. Versuch mal kein .ico sondern ein .png zu verwenden.
Mir scheint deine WindowsXP Qt4 installation hat Probleme mit dem ICO Format.
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

Ist zwar Offtopic.. aber trotzdem noch ein paar Hinweise:

- löschst du "appIcon" im Destruktor? Wenn nicht, gibt's ein Memoryleak..
- warum denn überhaupt ein Pointer? Scheint mir in diesem Fall gar nicht notwendig zu sein...
Antworten