int NetworkModelRO::rowCount(const QModelIndex &parent) const { slotSendToServer("length"); // посылаем серверу запрос на общее кол-во строк// ответ считывается в переменную stringNetworkMessage // (она определена в классе) из слота получения ответа от сервера int n = stringNetworkMessage.toInt(); qDebug() << "stringNetworkMessage.toInt() => " << n; return n;}
QVariant NetworkModelRO::data(const QModelIndex &index, int role) const { qDebug() << "data(): index.row() => " << index.row(); if (!index.isValid()) return QVariant(); if (index.row() >= rowCount()) return QVariant(); if (role == Qt::DisplayRole){ QString tmp = QString("%1").arg(index.row()); // переводим указанный индекс в строку slotSendToServer(tmp); // отправляем его серверу qDebug() << "data(): stringNetworkMessage => " << stringNetworkMessage; return stringNetworkMessage; // получаем ответ в этой переменной (строка по указанному индексу) } else return QVariant();}
stringNetworkMessage.toInt() => 0 stringNetworkMessage.toInt() => 0 stringNetworkMessage.toInt() => 0 stringNetworkMessage.toInt() => 0 stringNetworkMessage.toInt() => 3 stringNetworkMessage.toInt() => 3 stringNetworkMessage.toInt() => 3 stringNetworkMessage.toInt() => 3 stringNetworkMessage.toInt() => 3 stringNetworkMessage.toInt() => 3 stringNetworkMessage.toInt() => 3 stringNetworkMessage.toInt() => 3 stringNetworkMessage.toInt() => 3
oid NetworkModelRO::slotReadyRead(){ QDataStream in(socket); in.setVersion(QDataStream::Qt_4_7); for(;;){ if(!nextBlockSize){ if(socket->bytesAvailable() < sizeof(quint16)) break; in >> nextBlockSize; } if(socket->bytesAvailable() < nextBlockSize) break; in >> stringNetworkMessage; // <--- nextBlockSize = 0; }}