QT实现qq消息盒子

guicaisa 2016-01-20 08:51:54
我自己的想法是,开个线程,每隔20ms判断一下鼠标悬停位置是否在系统托盘图标的QRect内,然后就显示这个消息盒子。这个消息盒子用一个继承自QWidget的类来写,其中一行一行的数据就用QListWidget,想征求下各位的意见。或者各位前辈有没什么关于这个问题实现的一些建议,谢谢。
...全文
299 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
guicaisa 2016-01-20
  • 打赏
  • 举报
回复
引用 3 楼 shihoongbo 的回复:
[quote=引用 2 楼 guicaisa 的回复:] [quote=引用 1 楼 shihoongbo 的回复:] Qt有自己的系统托盘控件QSystemTrayIcon,调用然后重写鼠标事件 鼠标移上就呼出弹出菜单 开线程那么麻烦干吗……
我是在想比如我用一个list一边从服务器那边接收消息,把所有消息放入list中,然后这边鼠标悬停系统托盘的时候,调用这个list生成一个widget,会不会造成对这个list访问的冲突。[/quote] 开线程是非常消耗资源的决定 读写list都是一瞬间的事情,这两个是不是互斥操作,得看你需要的后续操作是怎样的 从这个情况看,list不能算临界资源 梳理你的需求 无非就是 鼠标移上去,弹出窗口,显示list对应的widget 鼠标不在上面,无操作 后台会随时修改list 你担心的情况就是,窗口弹出的时候,list被修改而已 那你完全可以在list修改的时候发射一个信号,如果窗口显示出来,就接收这个信号,然后再修改窗口就行了[/quote] !你最后一句给人眼前一亮的感觉,,,感谢,,之前没想到,,,愣是往线程那边去想。。。谢谢
未狂 2016-01-20
  • 打赏
  • 举报
回复
引用 2 楼 guicaisa 的回复:
[quote=引用 1 楼 shihoongbo 的回复:] Qt有自己的系统托盘控件QSystemTrayIcon,调用然后重写鼠标事件 鼠标移上就呼出弹出菜单 开线程那么麻烦干吗……
我是在想比如我用一个list一边从服务器那边接收消息,把所有消息放入list中,然后这边鼠标悬停系统托盘的时候,调用这个list生成一个widget,会不会造成对这个list访问的冲突。[/quote] 开线程是非常消耗资源的决定 读写list都是一瞬间的事情,这两个是不是互斥操作,得看你需要的后续操作是怎样的 从这个情况看,list不能算临界资源 梳理你的需求 无非就是 鼠标移上去,弹出窗口,显示list对应的widget 鼠标不在上面,无操作 后台会随时修改list 你担心的情况就是,窗口弹出的时候,list被修改而已 那你完全可以在list修改的时候发射一个信号,如果窗口显示出来,就接收这个信号,然后再修改窗口就行了
guicaisa 2016-01-20
  • 打赏
  • 举报
回复
引用 1 楼 shihoongbo 的回复:
Qt有自己的系统托盘控件QSystemTrayIcon,调用然后重写鼠标事件 鼠标移上就呼出弹出菜单 开线程那么麻烦干吗……
我是在想比如我用一个list一边从服务器那边接收消息,把所有消息放入list中,然后这边鼠标悬停系统托盘的时候,调用这个list生成一个widget,会不会造成对这个list访问的冲突。
未狂 2016-01-20
  • 打赏
  • 举报
回复
Qt有自己的系统托盘控件QSystemTrayIcon,调用然后重写鼠标事件 鼠标移上就呼出弹出菜单 开线程那么麻烦干吗……

16,212

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧