Unsolved QSystemTrayIcon not available then run application with sudo on Ubuntu 18.04 LTS
-
If I run the application from sudo, the tray icon is not available. The problem is the same when using qml component SystemTrayIcon and when using the QSystemTrayIcon widget.
sudo ./myapplication qml: SystemTrayIcon::available false
#include <QGuiApplication> #include <QQmlApplicationEngine> int main(int argc, char *argv[]) { QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); QGuiApplication app(argc, argv); QQmlApplicationEngine engine; engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); if (engine.rootObjects().isEmpty()) return -1; return app.exec(); } main.qml import QtQuick 2.12 import QtQuick.Window 2.12 import Qt.labs.platform 1.0 Window { visible: true width: 640 height: 480 title: qsTr("Hello World") Text { anchors.centerIn: parent text: "SystemTrayIcon::available: " + idSystemTrayIcon.available } SystemTrayIcon { id: idSystemTrayIcon visible: true Component.onCompleted: { console.log("SystemTrayIcon::available", available) } } }
-
@Tolik
Maybe that's just how it is on Ubuntu 18.04 (including: by default you're using GNOME instead of Unity now)? There are sometimes issues if an application runs as one user when the desktop is running as another? -
Hi and welcome to devnet,
Are you having that issue with your distribution provided Qt ?
Note that running GUI application as root may not work as by default the access to the Xorg server is disable for that user so you have to explicitly grant access. That might be part of the issue.
-
Thank you for participating )
Ubuntu 18.04 LTS gnome 3.28.2
Build the program with Qt 5.12.1 (official build) and another program with 5.13 beta 2 (locally build). -