1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > QT之隐藏任务栏图标

QT之隐藏任务栏图标

时间:2023-03-13 19:36:35

相关推荐

QT之隐藏任务栏图标

QT之隐藏任务栏图标

QT之隐藏任务栏图标应用背景效果图上代码结尾

应用背景

我们在某些场景下,我们不希望在任务栏上出现我们的窗口的图标,类似QQ主面板,你会发现QQ主面板其实是没有任务栏图标的,那么我们该怎么做?也能让我们的任务栏不显示我们不想要的图标呢!在这之前我们需要了解下QT里的parent参数。

我们在写界面的时候,几乎每个构造函数里都会有一个parent参数。这个参数通常是QObject* 或者是 QWidget* 类型的。初始值0,我们基本上也没理会,但是你有没有想过,这个parent有什么作用呢?

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

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

效果图

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

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

上代码

//其实很简单,只要对窗口对象,设置一个父窗口就行。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!

如果你觉得所写的对你有帮助,默默点个赞哈,你的赞就是我最大的支持,嘿嘿~不要说我骗赞哦,(^__^)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。