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();
}
}
Đó là cách tôi nhận ra "thu nhỏ khay". Giờ đây, bạn có thể thu nhỏ bằng cách nhấp đúp vào biểu tượng hoặc nhấp chuột phải và chọn "Hiển thị/Ẩn" trong trình đơn.
Từ kinh nghiệm bản thân tôi đã học được rằng bạn thường không muốn điều này. Khay không phải là nơi dành cho các ứng dụng thu nhỏ. Khay _is_ vị trí chính xác cho các applet xem các sự kiện (Bluetooth, trạng thái mạng, loại nội dung đó). Nếu ứng dụng của bạn chứa loại chức năng đó, có thể là khôn ngoan khi chia nhỏ phần đó ra trong quy trình riêng của nó. Quá trình trợ giúp này sau đó sẽ xuất hiện luôn trong khay và không có nơi nào khác. – MSalters
Tuy nhiên, một số người dùng thích chức năng này. Trong ứng dụng của tôi, nó không phải là hành vi mặc định, nhưng được trình bày như một tùy chọn trong hộp thoại tùy chọn. Tôi thấy rằng loại cân bằng thiết kế chính xác và sở thích của người dùng. –