Qt c ++ QSystemTrayIcon不在托盘上,Windows 7

时间:2014-08-06 18:48:52

标签: c++ windows qt

我在做错了什么?程序运行和编译但图标不在托盘上。
我的操作系统是Windows 7。

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow( QWidget * parent )
    : QMainWindow( parent )
     , ui( new Ui::MainWindow )
{
    QMenu * trayIconMenu;
    trayIconMenu = new QMenu();
    QSystemTrayIcon tray;
    QIcon icon( ":/ok.png" );
    tray.setIcon( icon );
    tray.setContextMenu( trayIconMenu );
    tray.show();
    ui->setupUi( this );

}

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

1 个答案:

答案 0 :(得分:1)

问题是,只要执行存在QSystemTrayIcon构造函数,MainWindow就会销毁。你应该这样做:

MainWindow::MainWindow( QWidget * parent )
    : QMainWindow( parent ),
      ui( new Ui::MainWindow )
{
    QMenu * trayIconMenu = new QMenu();
    QSystemTrayIcon *tray = new QSystemTrayIcon(QIcon( ":/ok.png" ), this);
    tray->setContextMenu( trayIconMenu );
    tray->show();
    ui->setupUi( this );    
}