Russian Qt Forum

Qt => Работа с сетью => Тема начата: Pariah_War от Июнь 09, 2010, 02:22



Название: Структура...
Отправлено: Pariah_War от Июнь 09, 2010, 02:22
Помогите ....
Вопрос вот в чем :
Каким образом присвоить структуру с одного класса в другой класс.....
Код:
struct recc
{
    QVector<int> num;
    QStringList k_w;
    QVector<QString> pt;
    QVector<bool> k_v;
    QVector<QString> p_v;
    QVector<bool> k_ex;
    QVector<QString> p_ex;
};
Вот эта структура (класс QMainWindow) как ее передать в другой не привязанный к этому (классу QTcpSocket) ??


Название: Re: Структура...
Отправлено: hackoff от Июнь 09, 2010, 03:31
создать файл myrecc.h
Код:
#ifndef MYRECC_H
#define MYRECC_H
struct recc
{
    QVector<int> num;
    QStringList k_w;
    QVector<QString> pt;
    QVector<bool> k_v;
    QVector<QString> p_v;
    QVector<bool> k_ex;
    QVector<QString> p_ex;
};
#endif // MYRECC_H
и подключить его куда надо.
Если надо передавать структуру с помощью сигнал-слотов то
Код:
qRegisterMetaType<recc>("recc")
в mainwindow добавляешь сигнал
Код:
SIGNALS:
void sendData(recc);
И наследуешься от QTCPSocket и добавляешь публичный слот. Далее connect(/*бла бла бла*/)
Если надо по сети ее передавать, то пишешь функцию в которой поэлементно серилизуешь данные. На другом конце провода производишь обратный процесс.


Название: Re: Структура...
Отправлено: Sancho_s_rancho от Июнь 09, 2010, 09:06
Ну регистрировать то всё излишне, т.к. это требование только для "queued signal and slot connections"


Название: Re: Структура...
Отправлено: hackoff от Июнь 09, 2010, 10:47
Цитировать
Если надо передавать структуру с помощью сигнал-слотов то
Код:
Код:
qRegisterMetaType<recc>("recc")