示例程序

#ifndef TERMINALCONSOLE_H
#define TERMINALCONSOLE_H

#include <QObject>
#include <QProcess>

class TerminalConsole : public QObject
{
    Q_OBJECT
public:
    explicit TerminalConsole(QObject *parent = nullptr);
    void start();

signals:

public slots:
    void onReadStandardOutput();
    void onReadStandardError();
private:
    QProcess *process;
};

#endif // TERMINALCONSOLE_H
#include "terminalconsole.h"
#include <QDebug>

TerminalConsole::TerminalConsole(QObject *parent) : QObject(parent)
{
    process = new QProcess(parent);
    connect(process , SIGNAL(readyReadStandardOutput()) , this , SLOT(onReadStandardOutput()));
    connect(process , SIGNAL(readyReadStandardError()) , this , SLOT(onReadStandardError()));
    process->start("pkexec /bin/bash");
    process->waitForStarted();
    QStringList env = QProcess::systemEnvironment();
    for(int i=0;i<env.size();i++){
        QString e = env.at(i);
        process->write(QString("export %1\n").arg(e).toUtf8());
    }
    process->write("export DISPLAY=:0\n");
    process->write("export XAUTHORITY=/home/yeqiang/.Xauthority\n");
}

void TerminalConsole::start()
{
    process->write("filezilla\n");
}

void TerminalConsole::onReadStandardOutput()
{
    QString outStr = QString::fromUtf8(process->readAllStandardOutput().data());
    qDebug() << QString("stdout: %1").arg(outStr);
}

void TerminalConsole::onReadStandardError()
{
    QString errStr = QString::fromUtf8(process->readAllStandardError().data());
    qDebug() << QString("stderr: %1").arg(errStr);
}

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐