Вобщем недавно начал изучать 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.
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.