简体   繁体   English

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

[英]Qt c++ QSystemTrayIcon not on tray, windows 7

what am i doing wrong? 我究竟做错了什么? Program runs and compiles but icon is not on tray. 程序运行并编译,但托盘上没有图标。
My OS is Windows 7. 我的操作系统是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;
}

The problem is that your QSystemTrayIcon destroys as soon as the execution exists your MainWindow constructor. 问题在于,一旦执行存在您的MainWindow构造函数,您的QSystemTrayIcon就会销毁。 You should rather do this: 您应该这样做:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM