【问题标题】:Qt Systray icon cannot be implementedQt Systray 图标无法实现
【发布时间】:2016-05-05 10:35:07
【问题描述】:

我有一个带有按钮的窗口,当它被按下时,它会将窗口隐藏到系统托盘。

问题是没有显示系统托盘图标。 这是代码,我做错了什么?

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

我按下按钮,窗口被隐藏,但系统托盘图标没有出现。 为什么?

【问题讨论】:

    标签: qt systray


    【解决方案1】:

    我找到了……

    我必须将可见设置为真正的托盘图标

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

    【讨论】:

      猜你喜欢
      • 2022-07-21
      • 1970-01-01
      • 1970-01-01
      • 2012-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多