我正在尝试使用simly功能。 当我点击托盘图标时:
-A- if app is hide > show
-B- if app is show and is NOT focus > focus it
-C- if app is show and focus > hide
非常简单,但是如果您有焦点应用并且点击了尝试图标,则焦点会丢失,现在任务栏都会聚焦。所以B条件是真的而不是C. 那是什么呢?
答案 0 :(得分:0)
当主窗口的焦点输出事件发生后很快发生托盘图标上的单击事件时,您可以采用C.所以你可以这样做:
MainWindow::focusOutEvent(...) {
trayIcon->setJustFocussedOut(true);
this->someQTimer->start();
}
MainWindow::focusOutDone() {
trayIcon->setJustFocussedOut(false);
}
其中MainWindow::someQTimer
是QTimer设置为单一模式和非常短的间隔(例如50毫秒)。 setJustFocussedOut
方法在托盘图标中设置一个标志,使其处理单击,如案例C。