crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> QProcess+QProgressBar
Kokos
  опции профиля:
сообщение 18.6.2015, 21:47
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 2
Регистрация: 18.6.2015
Пользователь №: 4409

Спасибо сказали: 0 раз(а)




Репутация:   0  


Кому не трудно подскажите пожалуйста.
Решил сделать интерфейс для консольной программки на bash, в с++ не разбираюсь, но с помощью Qt Creator сделал форму, пару кнопок.
Есть скрипт который долго работает, хотел вывести статус его выполнения через QProgressBar, но не соображу как это сделать.

Пока код такой:
#include "widget.h"
#include "ui_widget.h"
#include <QProcess>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
}

Widget::~Widget()
{
    delete ui;
}

void Widget::on_pushButton_2_clicked()
{
    QProcess process(this);
    process.startDetached("/opt/tall/ttings.sh");
}

void Widget::on_progressBar_valueChanged(int value)
{


}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
wiz29
  опции профиля:
сообщение 19.6.2015, 14:21
Сообщение #2


Старейший участник
****

Группа: Участник
Сообщений: 600
Регистрация: 7.7.2010
Из: Санкт-Петербург
Пользователь №: 1866

Спасибо сказали: 94 раз(а)




Репутация:   12  


Через QProcess никак,
если только выполнение вашего скрипта не возвращает в аутпут процесса значение прогресса выполнения.

если же там простой скрипт состоящий построчно из команд, без циклов и тп фишек.
то этот файл можно выполнить последовательно, построчно.
Тогда все выглядит довольно просто:
1. Читается файл скрипта построчно, заполняется массив со строками
2. Потом последовательно выполняется через QtConcurrent::mappedReduced например
3. Используется QFutureWatcher для мониторинга процесса исполнения, который подключается к полосе прогресса.

Сообщение отредактировал wiz29 - 19.6.2015, 14:22
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 15:09