#c #qt
#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. Доступна ли какая-либо трассировка стека?
Ответ №1:
QSystemTrayIcon::setIcon использует ссылку на объект, объект, поскольку он объявлен в методе, выйдет из области видимости, как только метод завершится. Я не знаю, создает ли Qt внутреннюю копию значка, иначе это может быть причиной сбоя. Определите значки в файле ресурсов (это, как правило, лучшая практика) и используйте их оттуда.