[英]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.