水木社区手机版
首页
|版面-KDE与Qt编程技术(KDE_Qt)|
新版wap站已上线
返回
1/1
|
转到
主题:Qt程序移植到linux下右键菜单失效
楼主
|
bigsen
|
2021-05-04 10:47:42
|
展开
windows下一切正常,左键点击托盘图标应该无效,右键点击应弹出菜单。但该程序在linux下重新编译后,无论是左键还是右键点击托盘图标都是出来一个长条,无菜单。通过日志信息发现onActivatedSysTray槽函数没有被调用,但connect时返回true。请教版上大佬这是什么问题?
系统是Ubuntu18.04,Qt5.12
--
修改:bigsen FROM 223.88.88.*
FROM 223.88.88.*
3楼
|
bigsen
|
2021-05-05 10:06:51
|
展开
setContextMenu只是把自定义的右键菜单与SystemTrayIcon关联起来,这样鼠标对trayIcon的操作才能得到正确的响应吧
【 在 hgoldfish 的大作中提到: 】
: 你前面有调用 trayIcon->setContentMenu() 那么 trayIcon 就会自动弹出菜单,不需要你在 onActivatedSysTray() 里面手动弹出。
: 事实上,,activated() 只会在没有被调用 setContextMenu() 的时候才会发送 activated() 信号。
:
--
FROM 223.88.88.*
5楼
|
bigsen
|
2021-05-05 10:20:12
|
展开
1、移植到linux后,出现了中文乱码问题,尝试了很方法都不行,后来通过先设置
QTextCodec *codec = QTextCodec::codecForName("GBK");
QTextCodec::setCodecForLocale(codec);,
设置中文名称的时候再使用QString::fromLocal8Bit("中文"),才解决了这个问题。
这样使用有什么问题么?那正确的方式应该时什么?
2、添加了this->trayIcon->setVisible(true);并this->trayIcon->show();问题依旧。我再试试其它桌面环境下怎么样。
3、其实我的目标机是个小型工控机,arm cpu,借此也想请教个工程化的问题,虽然我的目标环境是一个带有图形桌面的完整linux环境,但一般情况下,针对工控或者嵌入式,大家是不是都是采用无界面的存命令行程序?那如果有一些信息需要输出的话,都依赖于记录日志的方式么?如果是工程调试时,可能需要人工手动发送若干命令,这种需求通常做法是什么?
【 在 hgoldfish 的大作中提到: 】
: 具体原因其实我也不清楚。有可能是桌面环境的问题。
: 不过仅就你目前的代码,随便说两句:
: 1. QIcon() 的内容,建议放在 qrc 文件里面。省得布署的时候搞错。
: ...................
--
FROM 223.88.88.*
7楼
|
bigsen
|
2021-05-05 10:56:41
|
展开
源码好像默认就是是utf-8吧。
Ubuntu下QtCreator打开源码,文件里面的注释全都是乱码,每次都需要select encoding,然后选择GBK。
2、this->action_show->setText(QString::fromUtf8("显示窗口")); 经试验,这种方式也还是乱码。
【 在 hgoldfish 的大作中提到: 】
: 你这方法仍然不对:
: 1. 源代码应该要坚持 utf-8
: 2. 用 QString::fromUtf8() 把源代码里面的字符转成 str.
: ...................
--
FROM 223.88.88.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版