Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2015, 04:40   #1
fredwriter
Форумчанин
 
Регистрация: 06.10.2009
Сообщений: 121
По умолчанию Выполнение кода в потоке

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

Код:
#include <QApplication>
#include <QtCore>
#include <QtGui>


    QString ping_Around;
    QStringList arguments;
    QStringList arguments1;
    QStringList arguments2;
    QStringList arguments3;
    QProcess myProcess;
    QProcess myProcess1;
    QProcess myProcess2;
    QProcess myProcess3;
    QStringList strlstPingResults;
    QStringList strlstPingResults1;
    QStringList strlstPingResults2;
    QStringList strlstPingResults3;
    QStringList Ss[4];
    QGraphicsTextItem* itemText[4];
    QString count_Pack[4];
    
class myClass : public QGraphicsScene {

public:
        myClass(QObject *parent = 0);

        

    
private:
        QGraphicsEllipseItem *item;
};


class MyThread : public QThread {

public: 
    void run () { 
        myClass m;
        QGraphicsView v(&m);
    
    
        v.setRenderHints(QPainter::Antialiasing);
        v.show();
        v.setGeometry(100, 100, 20, 100); 
    } 
};


myClass::myClass(QObject *parent): QGraphicsScene(parent)
{
    ping_Around = "/bin/ping";
    arguments << "-c" << "4" << "10.31.3.130";
    arguments1 << "-c" << "4" << "10.31.4.130";
    arguments2 << "-c" << "4" << "10.31.5.130";
    arguments3 << "-c" << "4" << "10.31.6.130";
    myProcess.start(ping_Around, arguments);
    myProcess.waitForFinished(4000);
    myProcess1.start(ping_Around, arguments1);
    myProcess1.waitForFinished(4000);
    myProcess2.start(ping_Around, arguments2);
    myProcess2.waitForFinished(4000);
    myProcess3.start(ping_Around, arguments3);
    myProcess3.waitForFinished(4000);
    
    strlstPingResults<<myProcess.readAll();
    Ss[0] = strlstPingResults[0].split('\n');
    strlstPingResults1<<myProcess1.readAll();
    Ss[1] = strlstPingResults1[0].split('\n');
    strlstPingResults2<<myProcess2.readAll();
    Ss[2] = strlstPingResults2[0].split('\n');
    strlstPingResults3<<myProcess3.readAll();
    Ss[3] = strlstPingResults3[0].split('\n');
    for (int i = 0; i < 4; i++) {
        if (Ss[i].count() > 1) {
            count_Pack[i] = Ss[i][7].mid(23, 1);
        }
    }
    this->setSceneRect(QRectF(-90, 0, 15, 15));

    for (int i = 0; i < 4; i++) {
        if (count_Pack[i].count() > 0) {
            if (count_Pack[i] == "4") {
                item = new QGraphicsEllipseItem(0, this);
                item->setRect(QRectF(-90, -40 + (i * 16), 15, 15));
                item->setBrush(QBrush(Qt::green));
            }
        }
        else {
            item = new QGraphicsEllipseItem(0, this);
            item->setRect(QRectF(-90, -40 + (i * 16), 15, 15));
            item->setBrush(QBrush(Qt::red));
        }
    }
    
    
}


int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

//    myClass m;
//    QGraphicsView v(&m);
//    
//    
//    v.setRenderHints(QPainter::Antialiasing);
//    v.show();
//    v.setGeometry(100, 100, 20, 100);
    MyThread Thread;
    Thread.run();
    return app.exec();
}
Ищущий да обрящет
fredwriter вне форума Ответить с цитированием
Старый 22.04.2015, 06:17   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Насколько я помню, надо вызывать Thread.start()
waleri вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Sleep останавливает выполнение всего в программе а не задерживает выполнение конкретного куска кода? Illusiony Общие вопросы Delphi 19 22.02.2015 18:37
Странное выполнение кода. Taler Общие вопросы C/C++ 15 04.04.2012 15:18
Выполнение PHP кода Sprat PHP 1 31.01.2012 15:12
Парсер, выполнение кода. zumm Общие вопросы Delphi 27 30.06.2010 13:29
Выполнение кода из файла.. NSvirus Паскаль, Turbo Pascal, PascalABC.NET 25 14.06.2009 00:56