crossplatform.ru

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

4 страниц V  < 1 2 3 4 >  
Ответить в данную темуНачать новую тему
> Помогите разобраться c передачей данных по сети!, создание двух потоков
PVGDRK
  опции профиля:
сообщение 1.10.2010, 12:57
Сообщение #21


Студент
*

Группа: Участник
Сообщений: 49
Регистрация: 27.4.2010
Пользователь №: 1662

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




Репутация:   0  


Не, я так понимаю совсем не в конструкторе моего генератора если посмотреть на выше приведенный код , то экземпляр MyThread создаётся где то в самом низу в файле generator.cpp....
Я правильно понимаю. что экземпляр MyThread нужно создать вот здесь?

Файл generator.cpp
Generator::Generator(QWidget *parent, Qt::WFlags flags)   /[u][b]/ Конструктор[/b][/u]
    : QMainWindow(parent, flags)
{
    ui.setupUi(this);
    createFilesTable();
    Disable();
}
Generator::~Generator()                                    // Деструктор
{
    CloseAWG();
}

или в h файле?

#ifndef GENERATOR_H
#define GENERATOR_H

#include....
......
class Generator : public QMainWindow
{
    Q_OBJECT        
public:
    Generator(QWidget *parent = 0, Qt::WFlags flags = 0);
    ~Generator();

    QString data[100];  
    ViSession    rm, vi;
    ViStatus    status;
    char buffer_1[BUFSIZ];
    ViUInt32    retCount;
    bool OpenAWG;
    
public:
    Ui::GeneratorClass ui;
    QTableWidget *filesTable;
    void CloseAWG(void);
    void ReadWaveFormData(void);
    void ReadSetting(void);
    void Enable(void);
    void Disable(void);

public slots:
    void createFilesTable();
    void on_pushButton_5_clicked();
    void on_pushButton_3_clicked();
    void on_tableWidget_cellDoubleClicked(int Col, int Row);
    void on_pushButton_2_clicked();    

private slots:
    void on_tabWidget_currentChanged(int);
    void on_comboBox_2_textChanged(const QString &);
    void on_lineEdit_NameF_textChanged(const QString &);
    void on_pushButton_8_clicked();
    void on_comboBox_textChanged(const QString &);
    void on_pushButton_4_clicked();
    void on_pushButton_7_clicked();
    void on_lcdNumber_overflow();
    void on_pushButton_6_clicked();
    void on_pushButton_clicked();    
};
#endif // GENERATOR_H
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 1.10.2010, 13:05
Сообщение #22


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


PVGDRK, поиском я не нашёл, где у тебя создаётся экземпляр MyThread. Может, ты не весь код показала ? :)

Или "внизу файла" - это ты говоришь про ОПИСАНИЕ класса
class MyThread:public QThread
{

?

тогда у тебя в корне неверно. Опиши класс потока в другом файле. Сейчас даже не знаю, с чего начинать это рассказывать, прикрепи ка проект, я из него тебе сделаю пример, а потом вопросы задашь
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
PVGDRK
  опции профиля:
сообщение 1.10.2010, 13:14
Сообщение #23


Студент
*

Группа: Участник
Сообщений: 49
Регистрация: 27.4.2010
Пользователь №: 1662

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




Репутация:   0  


Я так понимаю у меня вообще не создается экземпляр класса QThread :unsure:
Проект в личку отправлю :wub:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 1.10.2010, 13:22
Сообщение #24


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


Цитата(PVGDRK @ 1.10.2010, 16:14) *
Я так понимаю у меня вообще не создается экземпляр класса QThread

правильно )

Цитата(PVGDRK @ 1.10.2010, 16:14) *
Проект в личку отправлю

зачем, прикрепи к посту. Всё секретное и эротическое - вырезай ))
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
PVGDRK
  опции профиля:
сообщение 1.10.2010, 13:34
Сообщение #25


Студент
*

Группа: Участник
Сообщений: 49
Регистрация: 27.4.2010
Пользователь №: 1662

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




Репутация:   0  


Если я все вырежу - то Вы мне тогда не сможете помочь :)
Эх, у нас тут на работе настройки инета такие, что мне ни сюда ни в личку ничего не загрузить :unsure:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 1.10.2010, 13:36
Сообщение #26


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


PVGDRK, ладно, щас набросаю схемку. Но! Срочно читать книжки по C++!!! Про классы.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
PVGDRK
  опции профиля:
сообщение 1.10.2010, 13:39
Сообщение #27


Студент
*

Группа: Участник
Сообщений: 49
Регистрация: 27.4.2010
Пользователь №: 1662

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




Репутация:   0  


Так я читаю - видно плохо понимаю что пишут... в книге 850 страниц я пока на 44 :(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 1.10.2010, 13:47
Сообщение #28


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


файл MyThread.h
Раскрывающийся текст
#pragma once
#include <QThread>
class Generator;

class MyThread:public QThread
{
    Generator* m_pData;
    
public:
    MyThread(Generator* pData=0);
    virtual void run();
};




файл MyThread.cpp
Раскрывающийся текст
#include "MyThread"

MyThread::MyThread(Generator* pData)
       :m_pData(pData)
{
}

void MyThread::run()
{
}



файл Generator.h
Раскрывающийся текст
#pragma once
#include <QMainWindow>
class MyThread;

class Generator : public QMainWindow
{
    Q_OBJECT        

    MyThread* m_pTHREAD;
public:
    Generator(QWidget *parent = 0, Qt::WFlags flags = 0);
    ~Generator();
...
...
};



файл Generator.cpp
Раскрывающийся текст
#include "Generator"
#include "MyThread"

Generator::Generator(QWidget *parent, Qt::WFlags flags)
    : QMainWindow(parent, flags)
{
    ui.setupUi(this);
    createFilesTable();
    Disable();

   m_pTHREAD=new MyThread(this);
}



Цитата(PVGDRK @ 1.10.2010, 16:39) *
в книге 850 страниц я пока на 44

про классы в книгах по C++ обычно пишут в самом начале - потому что это основы
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
PVGDRK
  опции профиля:
сообщение 1.10.2010, 14:08
Сообщение #29


Студент
*

Группа: Участник
Сообщений: 49
Регистрация: 27.4.2010
Пользователь №: 1662

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




Репутация:   0  


Безмерно Вам благодарна за подробный ответ :give_rose:
Нечто подобное я пыталась написать , но видимо что то не так сделала и не помогло, а потом вообще запуталась что где пишется и в каких файлах - в моей книжке про это ничего не пишут... вот решила обратиться за помощью на форум...
Спасибо Вам большое еще раз. попробую сейчас реализовать это
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
PVGDRK
  опции профиля:
сообщение 6.10.2010, 11:07
Сообщение #30


Студент
*

Группа: Участник
Сообщений: 49
Регистрация: 27.4.2010
Пользователь №: 1662

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




Репутация:   0  


Помогите теперь, пожалуйста понять, как это работает ... :unknown:
с горем по-полам что то написала
в файле main.cpp дописала пару строк:
MyThread thread;
    thread.start();

в файле
MyThread.cpp в методе run() дописала вызов своей функции из класса Generator
Раскрывающийся текст
void MyThread::run()
{
m_pData->on_pushButton_5_clicked();
}


Решила посмотреть как это работает в пошаговом режиме...
Получается.что как только программа запускается я попадаю на точку останова с вызовом функции m_pData->on_pushButton_5_clicked(); и сразу же перехожу к ее выполнению . получается.что у меня даже главное окно программы не успевает загрузиться
мне кажется,что перед этой строкой нужно написать что то тииа
if (m_pData-> что  тут не знаю )

Но как тогда из основного потока при нажатии кнопки pushButton_5_clicked() выполнить действия в другом потоке?
Если написать просто:
if (m_pData)
{
m_pData->on_pushButton_5_clicked();
}

то функция m_pData->on_pushButton_5_clicked(); не вызыается и тогда. как я понимаю, все делается в основном потоке ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

4 страниц V  < 1 2 3 4 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


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




RSS Текстовая версия Сейчас: 19.4.2024, 20:13