GUI Frontend для консольной проги на QT

компьютеры программирование Linux C++ qt

Вобщем недавно начал изучать Qt. Использую Archlinux.

Для практики решил написать GUI для проги yaourt (надстройка над менеджером пакетов pacman)

Теперь суть проблемы:

void MainWindow::on_pushButton_clicked()
{
QStringList args;
args << "-Syub" << "--aur";
process->setEnvironment(QProcess::systemEnvironment());
process->start("yaourt", args);
connect(process, SIGNAL(readyReadStandardOutput()), this, SLOT(slotMessages()) );
process->waitForFinished();
process->deleteLater();
}

void MainWindow::slotMessages()
{
ui->textEdit->append(QString::fromLocal8Bit(process->readAllStandardOutput()));
}

При чтении инфы от пакета - yaourt -Si firefox, идёт выброс нужной инфы после завершения приложения.
Но когда использую yaourt -Syub --aur, для обновления выхлопа нету...

Суть в том что приложение посылает сигнал только по завершении, а мне надо полностью синхронная работа, чтобы при возникновении определённых событий пользователь мог принять решение...

Вопрос как заставить программы работать полностью синхронно, чтобы когда в консоль выкидывает очередную строку я сразу же её получал?

Примечание:
Частично решил вопрос, теперь надо узнать как программно авторизироватся под рутом...

Примечание:
void MainWindow::on_pushButton_clicked()
{
QStringList args;
args << "-c" << "yaourt" << "-Syu" << "--aur";
process->setEnvironment(QProcess::systemEnvironment());
process->start("kdesu", args);
connect(process, SIGNAL(readyReadStandardOutput()), this, SLOT(slotMessages()) );
connect(process, SIGNAL(readyReadStandardError()), this, SLOT(slotMessages()) );
process->waitForFinished();
process->deleteLater();
}

void MainWindow::slotMessages()
{
ui->textEdit->append(QString::fromLocal8Bit(process->readAllStandardOutput()));
ui->textEdit->append(QString::fromLocal8Bit(process->readAllStandardError()));
}

изменил код, но kdesu не позволяет запустить программу с параметрами, есть ещё способы получить права рут?

Примечание:
какраз таки kdesudo вообще не реагирует никак, даже никаких сообщений не генерирует...

Примечание:
kdesu: Неизвестный параметр Syu.
Ответы:
kdesudo же
и вообще, писать фронтэнд для фронтэнда, несколько моветон :) Конечно, для научиться пойдёт...


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.