Quantcast
Channel: Jobs
Viewing all articles
Browse latest Browse all 18427

how to output the data from tablemodel?

$
0
0
In the function sendSettingParameters(void) of class RemoteControl, I want to get all the data from QList<QList<QVariant> > stepTable in the class steptablemodel output to QDataStream “out” so that it can be send out through UDP socket. The way I tried with function stepTable2Stream() is not working. I tried to overload << for class steptablemode, but it cannot access stepTable from the overload function <<. How can I do it? Thanks. The data inside QList<QList<QVariant> > stepTable are int or float class RemoteContol : public QWidget {     Q_OBJECT   public:     explicit RemoteContol(QWidget *parent = 0);     ~RemoteContol();   private:     Ui::RemoteContol *ui;       QUdpSocket udpSocket;     quint8 baseTime;    // 0:GPS 1: UTC     quint8 opMode;      // 0:Manual 1:Auto     quint8 waveform;    // 0:FD 1:TD50 2:TD33 3:TD25     steptablemodel StepTableModel; }; class steptablemodel : public QAbstractTableModel {     Q_OBJECT public:     explicit steptablemodel(QObject *parent = 0);     void setStepTable(QList<QList<QVariant> > &tablelist);     friend QDataStream& operator <<(QDataStream& out, const steptablemodel& steptable);     QDataStream stepTable2Stream(); signals:     public slots:     void insertAStep(QList<QVariant> step, const QModelIndex &index); private:     QList<QList<QVariant> > stepTable; };   void RemoteContol::sendSettingParameters(void) {     float a=2.3;     QByteArray datagram;     QDataStream out(&datagram,QIODevice::WriteOnly);     out.setVersion(QDataStream::Qt_4_6);     out.setByteOrder(QDataStream::LittleEndian);     out.setFloatingPointPrecision(QDataStream::SinglePrecision);     out << baseTime;     if (opMode==0) { //manual mode         out << opMode;         if (ui->FreqSetcomboBox->currentIndex()==0)             out << (float)ui->FREQSetBox->value();         else             out << 1/(float)ui->FREQSetBox->value();         out << (float) ui->CurrentSetBox->value()             << (quint8) 0  << waveform             << (quint16) ui->VoltageSetBox->value()             << (quint8) ui->PowerspinBox->value();     } else {    // auto stepping table mode         out = StepTableModel.stepTable2Stream(); <---- here causes the problem     }     udpSocket.writeDatagram(datagram,QHostAddress("10.10.10.255"),49166); }   QDataStream steptablemodel::stepTable2Stream() {     QDataStream stream;     stream << stepTable.size();     for (int i=0; i<stepTable.size(); i++) {         stream <<stepTable[i][0].toFloat()<<stepTable[i][1].toFloat()             <<stepTable[i][2].toInt();         if (stepTable[i][3].toString().compare("FD")==0)             stream << (quint8) 0;         else if (stepTable[i][3].toString().compare("TD50")==0)             stream << (quint8) 1;         else if (stepTable[i][3].toString().compare("TD33")==0)             stream << (quint8) 2;         else if (stepTable[i][3].toString().compare("TD25")==0)             stream << (quint8) 3;         stream <<stepTable[i][4].toInt()<<stepTable[i][5].toInt();     }     return stream; }

Viewing all articles
Browse latest Browse all 18427

Trending Articles