Инвертировать цвета в значке в системном трее при клике в Qt4? - PullRequest
2 голосов
/ 08 июля 2011

По сути, я хочу инвертировать цвета моего приложения osx systrayicon только при нажатии (как обычно в приложениях Mac), как это происходит по умолчанию в приложениях Mac. Как бы я сделал это сейчас, когда aboutToHide () не поддерживается на Mac?

Могу ли я как-нибудь кодировать это? Используя qt 4.7.3

Ответы [ 2 ]

2 голосов
/ 08 июля 2011

Я не писал для Mac, но пытаюсь отловить событие нажатия и вручную установить значок с инвертированными цветами ...

void <YourClass>::onTrayIconActivated(QSystemTrayIcon::ActivationReason reason)
{
    if(reason==QSystemTrayIcon::Trigger)
    {
        <Your tray object>->setIcon(<Icon with inverted colors>);
    }
}

подключите его к сигналу вашего трея activated()

если на Mac по умолчанию инвертируется цвет значков назад, вы можете сделать это с помощью таймера или чего-то подобного.

1 голос
/ 08 декабря 2011

Можете ли вы установить выбранное растровое изображение для вашего значка, например, myIcon->addPixmap(":/systray-selected.png", QIcon::Selected);?

...