黑色幽默大师 2022-03-09 18:24 采纳率: 0%
浏览 801
已结题

Linux平台下用Qt开发的托盘程序,用root权限运行程序时,托盘图标不显示

在linux下平台下开发一个托盘程序,在普通用户下托盘图标可以显示,在root权限时,托盘图标不显示

以下为运行demo代码

#include
#include
#include

#include "networkmanager.h"

int main(int argc, char *argv[])
{
QApplication::setApplicationName("Demo1");
QApplication app(argc, argv);

 if (!QSystemTrayIcon::isSystemTrayAvailable())
 {
     QMessageBox::critical(0, QObject::tr("Systray"),
                           QObject::tr("I couldn't detect any system tray "
                                       "on this system."));
     return 1;
 }

 QApplication::setQuitOnLastWindowClosed(false);

 QSystemTrayIcon demo1;

 demo1.setIcon(QIcon(":/new/prefix1/resource/ox32-device-network-defaultroute.png"));

 demo1.show();

 return app.exec();

}

运行结果及报错内容

su root
./demo1
运行之后报如下错误,并没有托盘显示。

QStandardPaths: wrong ownership on runtime directory /var/run/user/1000, 1000 instead of 0
QStandardPaths: wrong ownership on runtime directory /var/run/user/1000, 1000 instead of 0

使用sudo ./demo1运行时报如下错误
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'

我想要达到的结果

已root权限运行托盘程序

  • 写回答

6条回答 默认 最新

  • _GX_ 2022-03-09 19:05
    关注
    获得0.65元问题酬金
    1. 以root权限运行GUI程序有安全隐患,一般不建议以root权限运行GUI程序
    2. Linux系统可能默认禁止root访问X server桌面服务
    评论

报告相同问题?

问题事件

  • 系统已结题 3月17日
  • 创建了问题 3月9日

悬赏问题

  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥15 Oracle触发器记录修改前后的字段值
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题