crossplatform.ru

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


  Ответ в Потоки и Qwt!
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 13.1.2010, 16:15
 
Цитата(posi4 @ 13.1.2010, 17:35) *
Т.е. я так понимаю сделать тут ничего нельзя.
готовь данные в отдельном потоке и посылай сигнал. В главном потоке путь ГУЙ ловит их и читает данные.
Я передавал из доп потока doble и doble (x и y, соответственно) в главный с помощью сигнала, эти данные сразу же рисовались. Т.е. хотел сделать что-то вроде осцилографа.

Но на практике оказалось медленно. Пока думаю, что нужно передавать пачку данных в виде QByteArray. Т.к. сырые данные опасно передавать из потока в поток, без какой либо защиты.
posi4 Дата 13.1.2010, 14:35
 

Цитата
Все, что не связано с GUI постараться выделить и перенести в отдельный поток. Только так, к сожалению!


да, придется так. спасибо всем, что подтвердили мои сомнения.
AD Дата 13.1.2010, 14:03
 
Цитата(posi4 @ 13.1.2010, 13:45) *
Т.е. я так понимаю сделать тут ничего нельзя. :unsure:

Все, что не связано с GUI постараться выделить и перенести в отдельный поток. Только так, к сожалению!
posi4 Дата 13.1.2010, 13:45
 
Цитата
Если DataPlot наседуется от QwtPlot, то это GUI-объект (т.к. QwtPlot наследний QFrame).
Работать с GUI-объектом можно только в главном (GUI) потоке!


Цитата(azure @ 13.1.2010, 13:26) *
как уже правильно подсказали, весь гуй - это отдельный поток. Увы!


Т.е. я так понимаю сделать тут ничего нельзя. :unsure:
azure Дата 13.1.2010, 13:26
  как уже правильно подсказали, весь гуй - это отдельный поток. Увы!
BRE Дата 13.1.2010, 13:01
  Если DataPlot наседуется от QwtPlot, то это GUI-объект (т.к. QwtPlot наследний QFrame).
Работать с GUI-объектом можно только в главном (GUI) потоке!
posi4 Дата 13.1.2010, 12:50
  Есть главная форма, на ней хочу рисовать динамически обновляемые графики Qwt в отдельном потоке!
Рисование графиков взял из примера qwt - класс DataPlot.
Логику понимаю вроде, но похоже запутался =\ дальше код:

class PlotThread: public QThread
{
        DataPlot* myplot;

        protected:
                virtual void run()
                {
                    myplot->setObjectName(QString::fromUtf8("PlotUp"));
                    myplot->setGeometry(QRect(10, 130, 800, 400));
                    .
                    .
                    .
                }

        public:
                PlotThread(DataPlot* plot, QObject * parent = 0):
                        QThread(parent)
                {
                    myplot = plot;
                }
};

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

MyGUI::MyGUI(SecondPart* secpart,QWidget *parent)
        : QWidget(parent), ui(new Ui::MyGUI)
{
    ui->setupUi(this);
    ui->groupBox_InParams->setShown(false);
    this->secpart = secpart;
  
    DataPlot* plotUp = new DataPlot(this)
    PlotThread* plot = new PlotThread(plotUp);
    plot->start();
.
.
.
.
}


Ошибок при компиляции не выдаёт, но после запуска программы сразу завершается!
То ли я не правильно объявляю, то ли не правильно создаю - запутался! Помогите!
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 1:30