QT在运行时切换QSystemTrayIcon

时间:2014-06-23 06:14:49

标签: c++ qt

我试图在运行时切换QSystemTrayIcon。但有时候应用程序会随机崩溃。

在我的mainwindow.h中:

QSystemTrayIcon *sti = new QSystemTrayIcon(this);

在我的mainwindow.cpp中:

// In my online method:
QIcon xmediaIcon("://online.png");
sti->setIcon(xmediaIcon);

// In my offline method:
QIcon xmediaIcon("://offline.png");
sti->setIcon(xmediaIcon);

我做错了吗?应用程序启动但在一段时间后随机崩溃。我不确定我是否可以在标题中初始化2 xmediaIcon

1 个答案:

答案 0 :(得分:0)

QSystemTrayIcon :: setIcon使用对象的引用,该对象因为它在方法中声明,一旦方法结束就会超出范围。我不知道Qt是否在内部复制了图标,否则可能是崩溃的原因。 在资源文件中定义图标(通常是最佳实践)并从那里使用它们。