Всплывающее сообщение QSystemTrayIcon не отображается в El Capitan - PullRequest
0 голосов
/ 25 мая 2018

Я хочу отображать всплывающие сообщения с QSystemTrayIcon в моем приложении qt на Mac.Значок в трее появляется в правом углу строки меню Mac.Проблема в том, что всплывающее сообщение не отображается в El Capitan (10.11.6), но оно отображается в Sierra (10.12) и High Sierra (10.13).

Пример Qt Tray Icon отлично работает на Эль-Капитане.

QSystemTrayIcon::isSystemTrayAvailable() и QSystemTrayIcon::supportsMessages() оба возвращают true.

Я не знаю, что делать дальше.Вот мой код:

класс значков настраиваемого лотка (.h)

class MyTrayIcon
{

public:
    MyTrayIcon(QObject* parent = nullptr);
    ~ MyTrayIcon();

    void balloonMsg(const QString& title, const QString& message);

    QSystemTrayIcon* sysTrayIcon = nullptr;
};

класс значков настраиваемого лотка (.cpp)

MyTrayIcon::MyTrayIcon(QObject* parent)
{
    sysTrayIcon = new QSystemTrayIcon(QIcon("my_icon.png"), parent);
}

MyTrayIcon::~MyTrayIcon()
{
    delete sysTrayIcon;
}

void MyTrayIcon::balloonMsg(const QString& title, const QString& message)
{
    sysTrayIcon->show(); // the icon does show
    sysTrayIcon->showMessage(title, message); // the message doesn't show
}

Класс главного окна (.h)

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

    Ui::MainWindow *ui;

    MyTrayIcon* mTrayIcon = nullptr;

public slots:
    void btnClicked();
}

Класс главного окна (.cpp)

MainWindow::MainWindow() : QMainWindow(parent), ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    mTrayIcon = new MyTrayIcon(this);

    connect(ui->pushButton, SIGNAL(clicked(bool)), this, SLOT(btnClicked()));
}

void MainWindow::btnClicked()
{
    mTrayIcon->balloonMsg("my title", "my message");
}

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...