我正在osx,windows,linux中开发一个应用程序
我想制作像skype这样的功能。当用户单击关闭窗口时,应用程序不会退出但隐藏当用户在Dock或任务栏上单击appicon时,我的主窗口将再次重新打开。
如何在用户点击应用图标时收到通知或过滤事件?
答案 0 :(得分:2)
首先,当您点击"关闭窗口时,您需要阻止应用程序窗口关闭。按钮。假设您使用QMainWindow
:
class MainWindow : public QMainWindow
{
// .. constructors, etc.
// ..
protected:
void closeEvent(QCloseEvent *)
{
// Do not close, but hide the window.
hide();
}
};
Qt有专门的类来处理任务栏图标 - QSystemTrayIcon
。所以,简单的应用程序看起来像:
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow mw;
QSystemTrayIcon tray; // needs an icon.
// Show the main window when user activates the tray icon.
QObject::connect(&tray, SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
&mw, SLOT(show()));
tray.show();
return app.exec();
}
答案 1 :(得分:0)
这应该会有所帮助:
void setQuitOnLastWindowClosed(bool quit)