0

押されたときにウィンドウをシステムトレイに非表示にするプッシュボタン付きのウィンドウがあります。

問題は、システム トレイ アイコンが表示されないことです。ここにコードがあります、私は何が間違っていますか?

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QSystemTrayIcon>
#include <QString>
#include <QPixmap>
#include <QIcon>
#include <QAction>
#include <QMenu>


MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    //setup tray icon
    QSystemTrayIcon *tray;
    QPixmap icon(":/pencil.png");
    QIcon trayIcon;

    tray= new QSystemTrayIcon(this);
    trayIcon= QIcon(icon);
    tray->setIcon(trayIcon);
    tray->setToolTip("ToolTip");

    //setup restore
    QAction *restoreAction;
    restoreAction = new QAction(QIcon(":/pencil.png"), "Restore", this);
    connect(restoreAction, SIGNAL(triggered()), this, SLOT(show()));

    QMenu *trayIconMenu;
    trayIconMenu = new QMenu(this);
    trayIconMenu->addAction(restoreAction);
    tray->setContextMenu(trayIconMenu);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    this->hide();
}

ウィンドウが非表示になっているボタンを押しましたが、systray アイコンが表示されません。なんで?

4

1 に答える 1

1

よく見つけた……。

私は本当のトレイアイコンに見えるように設定しなければなりませんでした

trayIconMenu = new QMenu(this);
trayIconMenu->addAction(restoreAction);
tray->setContextMenu(trayIconMenu);

tray->setVisible(true);
于 2016-05-05T11:27:33.793 に答える