qt菜单问题

博客讲述了国产系统下实际项目中,Qt4右键托盘图标调出菜单时会崩溃,Qt5菜单不能显示QWidgetAction菜单项的问题。并给出解决办法,Qt4需给托盘设非空上下文菜单,Qt5若响应特定激活原因则不能设上下文菜单。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

国产系统下实际项目中遇到的问题。

qt4中有时候右键托盘图标,调出菜单时会崩溃。

qt5中菜单不能显示QWidgetAction的菜单项。

 

这两个问题的出现让我废了不少时间排查,尤其是第二个,下面描述下简单的解决办法。

 

 

 

Qt4中需要给托盘设置上下文菜单,并且不能为空,否则会出现崩溃。

 

而在Qt5中,如果要响应activated(QSystemTrayIcon::ActivationReason)中的QSystemTrayIcon::Context,

那么就不能设置上下文菜单,否则将会直接调用菜单,菜单中的QWidgetAction将会不显示。

 

#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
     if (NULL == m_menu)  //小于5.0版本需要设置
         m_menu = new QMenu(this);
     m_sysTray->setContextMenu(m_menu);
#endif

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值