Иконка Qt Systray не может быть реализована
У меня есть окно с кнопкой, которая скрывает окно в системном трее, когда оно выдвигается.
Проблема в том, что значок в системном трее не отображается. Вот код, что я делаю не так?
#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();
}
Я нажимаю кнопку, окно скрыто, но значок систрей не отображается. Зачем?
1 ответ
Ну я нашел это....
я должен был установить видимый на истинный значок в трее
trayIconMenu = new QMenu(this);
trayIconMenu->addAction(restoreAction);
tray->setContextMenu(trayIconMenu);
tray->setVisible(true);