在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权限运行托盘程序