Qt несколько значков в системном трее


Я не уверен, что делаю это, но я думаю, что это когда я хочу, чтобы приложение закрылось резко (например, когда пользователь решает не продолжать после ошибки SSL приложение закроется), используя метод exit(EXIT_FAILURE);.

Я заметил, что есть несколько значков в системном трее, по одному для каждого запуска моего приложения.

Введите описание изображения здесь

Будет ли exit(EXIT_FAILURE); причиной этого? Есть ли в любом случае, чтобы правильно утилизировать объект системного трея?

Спасибо

1 2

1 ответ:

Если вы хотите выйти, то, вероятно, лучше всего попросить Qt сделать это, чтобы он мог убирать за собой.

Из любого места кода вызовите qApp - >quit () или QApplication::quit (). (qApp-глобальная) Вы также можете использовать exit ().

#include <QApplication> чтобы получить доступ.

Вы можете передать 'EXIT_FAILURE' в exit():

#include <QApplication>
QApplication::exit(EXIT_FAILURE)

Если вы не используете графический интерфейс Qt, QCoreApplication имеет ту же функцию:

#include <QCoreApplication>
QCoreApplication::exit(EXIT_FAILURE)

Обратите внимание, что exit() и quit () не закрывают программу сразу, а завершают ее ваш первоначальный вызов в приложение.выполнение(). На некоторых платформах и в некоторых случаях exec() не возвращается, а на других-возвращается.

Разница между quit () и exit () заключается в том, что quit () - это слот для сигналов и слотов, а quit() просто вызывает exit(0).