我试图在运行时切换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
?
答案 0 :(得分:0)
QSystemTrayIcon :: setIcon使用对象的引用,该对象因为它在方法中声明,一旦方法结束就会超出范围。我不知道Qt是否在内部复制了图标,否则可能是崩溃的原因。 在资源文件中定义图标(通常是最佳实践)并从那里使用它们。