如何隐藏QT窗口在任务栏的任务图标

 我来答
郭向锋律师团队
2017-05-26 · TA获得超过108个赞
知道小有建树答主
回答量:325
采纳率:0%
帮助的人:255万
展开全部
现在用到的挺多的软件基本都需要实现到这些个的功能。
1.对于无边框透明的窗口,其实两个设置两句话就搞定了
setAttribute(Qt::WA_TranslucentBackground);
setWindowFlags(Qt::FramelessWindowHint);
然后就是这样之后无法响应鼠标的拖动,所以你要重载时间处理函数来实现鼠标的按下然后拖动的时间,其实就是根据鼠标的移动事件,判断如果按键是按下的状态,那么久move整个控件这样子。当然你觉得如果好多个窗口都要实现这个功能或者说你觉的写在程序的窗口类里面去重载这些个函数不太好。那么你可以自己建一个QOBJECT,然后利用这个object来处理窗口的事件。例如你的win窗口,需要实现这个功能,那么你就调用
win->installEventFilter(this);this指的是你自己新建的用来处理拖动的时间的qobject类,然后多个win你都可以注册到这个obj上,之后你注册过的窗口的事件都会经过这个obj,你就可以在这里:eventFilter(QObject* obj, QEvent* event) 拿到鼠标的移动的信息,还可以判断拿到的对象,然后去实现想要的功能。其实用到的就是installEventFilter这个函数的事件注册的效果而已,然后有一点比较重要的就是:installEventFilter注册过的窗口,事件触发时候的优先级是越后注册的优先级越高,所以在后来注册的类里如果你在eventFilter里做完处理return了一个true,那消息就不会继续走,后面(先前注册的类)就拿不到这个消息。这个是要注意一下的,根据需求也能调整一下注册的顺序。对应的卸载就是removeEventFilter函数。

2.然后说一下托盘的事情
托盘其实利用的是QSystemTrayIcon这个类来实现。
zhouyongkao
2017-05-26 · 超过67用户采纳过TA的回答
知道小有建树答主
回答量:402
采纳率:0%
帮助的人:126万
展开全部
左键图标,将图标拖入倒三角中即可。---右键最下方任务栏-勾选自动隐藏任务栏
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式