首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法实现Qt Systray图标

无法实现Qt Systray图标
EN

Stack Overflow用户
提问于 2016-05-05 18:35:08
回答 1查看 47关注 0票数 0

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

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

代码语言:javascript
复制
#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();
}

我按下了隐藏窗口的按钮,但没有系统托盘图标显示。为什么?

EN

回答 1

Stack Overflow用户

发布于 2016-05-05 19:27:34

我找到了..。

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

代码语言:javascript
复制
trayIconMenu = new QMenu(this);
trayIconMenu->addAction(restoreAction);
tray->setContextMenu(trayIconMenu);

tray->setVisible(true);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37048336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档