QT开发中文网

qt弹出后隐藏再右下方托盘里

你可以使用Qt的QSystemTrayIcon类来实现将窗口隐藏到系统托盘的功能。首先,创建一个QSystemTrayIcon对象,并设置相应的图标和父窗口:

QSystemTrayIcon *trayIcon = new QSystemTrayIcon(this);
trayIcon->setIcon(QIcon(":/images/icon.png")); // 设置托盘图标

接下来,连接窗口的关闭事件到槽函数,当窗口关闭时将其隐藏到系统托盘:

connect(this, &QWidget::closeEvent, this, [=](QCloseEvent *event){
    event->ignore(); // 忽略关闭事件,即不直接关闭窗口

    if (trayIcon->isVisible()) {
        trayIcon->showMessage("提示", "应用程序已最小化到系统托盘");
    } else {
        trayIcon->show();
        this->hide();
    }
});

在上述代码中,当用户点击窗口的关闭按钮时,我们忽略了关闭事件,并通过调用show()方法显示系统托盘图标并隐藏主窗口。此外,还使用showMessage()方法在系统托盘中显示一条提示消息。

最后,在适当的地方(例如菜单项或按钮)添加恢复主窗口显示的操作:

connect(trayIcon, &QSystemTrayIcon::activated, this, [=](QSystemTrayIcon::ActivationReason reason){
    if (reason == QSystemTrayIcon::DoubleClick) {
        trayIcon->hide();
        this->showNormal();
        this->activateWindow();
    }
});

上述代码中,我们将QSystemTrayIcon的activated信号连接到槽函数,并检查原因是否为双击事件。如果是,则隐藏托盘图标并显示主窗口。

记得在适当的地方调用trayIcon->show()方法显示系统托盘图标。

希望这可以帮助你实现将窗口隐藏到系统托盘的功能。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=11849

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?