Qt QSystemTrayIcon 不发送激活信号

2023-12-22

我试图在这里复制 Qt 系统托盘示例:http://doc.qt.io/archives/4.6/desktop-systray.html http://doc.qt.io/archives/4.6/desktop-systray.html

除了 QSystemTrayIcon 对象没有发送激活信号之外,一切似乎都正常。

这是我的 mainwindow.cpp 代码:

#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;
}

我在 Windows XP SP2 上使用 Qt 4.5.2。这可能是 Windows XP 的问题吗?或者我做错了什么?我没有为托盘图标设置 QIcon。那是问题吗?

任何帮助,将不胜感激。

谢谢! 杰仁


好吧,如果有人感兴趣,我发现了这个问题。问题实际上出在头文件中。

这是有效的:

#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 需要声明为私有槽。我将其声明为私有函数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt QSystemTrayIcon 不发送激活信号 的相关文章

随机推荐