Qt QSystemTrayIcon not sending activated signal

c++, qt

Solution

Well if anyone's interested, I found the issue. The problem was actually in the header file.

Here's the one that works:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QWidget>
#include <QSystemTrayIcon>


class MainWindow : public QWidget
{
    Q_OBJECT

public:
    MainWindow();

private slots:
    void iconActivated(QSystemTrayIcon::ActivationReason reason);
private:
    QAction *minimizeAction;
     QAction *maximizeAction;
     QAction *restoreAction;
     QAction *quitAction;

     QSystemTrayIcon *trayIcon;
    void createActions();
    void createTrayIcon();

    void messageClicked();
};

#endif // MAINWINDOW_H

iconActivated needs to be declared as a private slot. I had it declared as a private function.

Problem

I'm trying to copy the Qt systray example here: http://doc.qt.io/archives/4.6/desktop-systray.html Things seem to be working except that the QSystemTrayIcon object is not sending an activate signal. Here's my mainwindow.cpp code: ``` #include <QtGui> #include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); QMessageBox::information(0, tr("Systray"), tr("Loaded.")); createTrayIcon(); connect(trayIcon,SIGNAL(activated(QSystemTrayIcon::ActivationReason)),this, SLOT(iconActivated(QSystemTrayIcon::ActivationReason))); trayIcon->show(); } void MainWindow::createTrayIcon() { trayIcon = new QSystemTrayIcon(this); } void MainWindow::iconActivated(QSystemTrayIcon::ActivationReason reason) { QMessageBox::information(0, tr("Systray"), tr("Testing")); } void MainWindow::messageClicked() { QMessageBox::information(0, tr("Systray"), tr("Sorry, I already gave what help I could.\n" "Maybe you should try asking a human?")); } MainWindow::~MainWindow() { delete ui; } ``` I'm using Qt 4.5.2 on Windows XP SP2. Could this be an issue with Windows XP? Or am I doing something wrong? I don't have a QIcon set for the trayIcon. Is that a problem? Any help would be appreciated. Thanks! Jieren

Original source