void main_window::create_tray_icon()
{
m_tray_icon = new QSystemTrayIcon(QIcon(":/icon.png"), this);
connect(m_tray_icon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(on_show_hide(QSystemTrayIcon::ActivationReason)));
QAction *quit_action = new QAction("Exit", m_tray_icon);
connect(quit_action, SIGNAL(triggered()), this, SLOT(on_exit()));
QAction *hide_action = new QAction("Show/Hide", m_tray_icon);
connect(hide_action, SIGNAL(triggered()), this, SLOT(on_show_hide()));
QMenu *tray_icon_menu = new QMenu;
tray_icon_menu->addAction(hide_action);
tray_icon_menu->addAction(quit_action);
m_tray_icon->setContextMenu(tray_icon_menu);
m_tray_icon->show();
}
void main_window::on_show_hide(QSystemTrayIcon::ActivationReason reason)
{
if(reason)
{
if(reason != QSystemTrayIcon::DoubleClick)
return;
}
if(isVisible())
{
hide();
}
else
{
show();
raise();
setFocus();
}
}
Tak właśnie rozumiem "zminimalizować do zasobnika". Możesz teraz zminimalizować, klikając dwukrotnie ikonę lub klikając prawym przyciskiem myszy i wybierając "Pokaż/ukryj" w menu.
Z własnego doświadczenia nauczyłem się, że zwykle nie chcą tego. Taca nie jest miejscem dla zminimalizowanych aplikacji. Taca jest właściwym miejscem dla apletów, które oglądają zdarzenia (Bluetooth, stan sieci, tego rodzaju rzeczy). Jeśli twoja aplikacja zawiera tego rodzaju funkcjonalność, rozsądne może być rozdzielenie tej części w swoim procesie. Ten proces pomocniczy pojawi się zawsze w zasobniku i nigdzie indziej. – MSalters
Niektórzy użytkownicy lubią tę funkcję. W mojej aplikacji nie jest to zachowanie domyślne, ale jest prezentowane jako opcja w oknie preferencji. Sądzę, że tego rodzaju salda jest poprawnym projektem i preferencjami użytkownika. –