QT之隐藏任务栏图标

QT之隐藏任务栏图标

应用背景

我们在某些场景下,我们不希望在任务栏上出现我们的窗口的图标,类似QQ主面板,你会发现QQ主面板其实是没有任务栏图标的,那么我们该怎么做?也能让我们的任务栏不显示我们不想要的图标呢!在这之前我们需要了解下QT里的parent参数。
我们在写界面的时候,几乎每个构造函数里都会有一个parent参数。这个参数通常是QObject* 或者是 QWidget* 类型的。初始值0,我们基本上也没理会,但是你有没有想过,这个parent有什么作用呢?

“对话框”,对话框一般是不作为顶层容器出现的,因此在任务栏上是没有对话框的位置的,指定对话框的parent属性,任务栏就不会出现图标。如果你不指定,这个对话框就成为顶层容器了,任务栏会出现图标。利用这个特性,就可以实现我们的窗体是否需要在任务栏上出现。

另外很重要的就是,parent参数指明了父窗口,当父窗口delete时,Qt可以保证所有子窗口都会被正确的delete掉,具体,可以参考我前篇文章QT之内存泄漏管理里面有谈到,如何通过设置父窗口,保证我们的内存安全。

效果图

这里大家可以看到我启的应用在任务栏上出现了。
任务栏

大家注意,我右边,以代表我是真的启了应用,但是在我的任务栏上是没有出现图标的。
任务栏NO

上代码

//其实很简单,只要对窗口对象,设置一个父窗口就行。
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QApplication::setQuitOnLastWindowClosed(false);
    QWidget* parent = new QWidget;
    Demo *pDemo = new Demo(parent);
    pDemo->show();
    pDemo->activateWindow();
    int ret = a.exec();
    delete parent;
    return ret;
}
//还有另外一种方法就是,我们不设置parent属性,使用QT标志位。
//setWindowFlags(Qt::Tool);这样任务栏也不会出现窗口图标

注意:我们在使用parent属性或者Qt::Tool时,最小化的时候,会出现左下角出现一块窗口区域情况,这种情况,你只要最小化的时候使用hide()就不会出现了。

如果你想使用我此篇Demo做测试,可到QT之样式styleSheet去下载源码。

结尾

只为记录,只为分享! 愿所写能对你有所帮助。Good Good Study, Day Day Up!
如果你觉得所写的对你有帮助,默默点个赞哈,你的赞就是我最大的支持,嘿嘿~不要说我骗赞哦,(^__^)

  • 28
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨田哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值