Концепция QProcess Launcher теперь работает без проблем в Trusty с ubuntu-sdk-team PPA. Просто создайте проект QML Extension Library + Tabbed UI (еще не используйте дефисы в имени проекта), замените содержимое
#ifndef LAUNCHER_H
#define LAUNCHER_H
#include <QObject>
#include <QProcess>
class Launcher : public QObject
{
Q_OBJECT
public:
explicit Launcher(QObject *parent = 0);
~Launcher();
Q_INVOKABLE QString launch(const QString &program);
protected:
QProcess *m_process;
};
#endif // LAUNCHER_H
и измените qmlRegisterType в backend.cpp на
qmlRegisterType<Launcher>(uri, 1, 0, "Launcher");
Затем просто очистите все MyType, оставшиеся от файлов QML, и добавьте
Rectangle {
Launcher {
id: qprocess
}
Text {
anchors.centerIn: parent
text: qprocess.launch("which bash")
}
}
где угодно вам нравится и
import projectname 1.0
в начале.
Я также использую эту оболочку:
function exec(command) {
return qprocess.launch("sh -c \"" + command + " < /dev/null \"")
}
Если вы нужен корневой доступ, добавьте pkexec.