本文整理汇总了C++中QByteArray::leftRef方法的典型用法代码示例。如果您正苦于以下问题:C++ QByteArray::leftRef方法的具体用法?C++ QByteArray::leftRef怎么用?C++ QByteArray::leftRef使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QByteArray
的用法示例。
在下文中一共展示了QByteArray::leftRef方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: parseFileList
void fileTransferThread::parseFileList( const QByteArray &fl ) {
parsedSize=0;
filesParsed=0;
fc=0;
allSize=0;
currentFile=0;
QTreeWidgetItem *item;
QStringList finfo;
QString path = settings->profileValue( QString("filetransfer/%1").arg(rndid) ).toString(), fname;
memcpy(&fc, fl.leftRef(4).constData(), 4);
for(quint32 i=0; i<fc; ++i) {
memcpy(&fs, fl.mid(4+i*260, 4).data(), 4);
fname=fl.mid(4+i*260+4, 256);
finfo<<fname<<""<<""<<""<<""<<QString("%L1 kB").arg( (float)qRound( ( (float)fs/1024 )*10 )/10 )<<path<<QString("%1").arg(fs);
item = new QTreeWidgetItem(finfo);
item->setIcon(0, QIcon(":offline"));
// item->setCheckState(0,Qt::Checked);
fileMap<<item;
emit addListItem(item);
allSize+=fs;
finfo.clear();
}
settings->removeProfileValue( QString("filetransfer/%1").arg(rndid) );
char packet[8];
quint32 tmp=FileListAck;
memcpy(&packet, &tmp,4);
tmp=0;
memcpy(&packet[4], &tmp,4);
socket->write(packet,sizeof(packet));
emit updateFilesData(fc, allSize);
requestFile();
}
示例2: sendFile
void fileTransferThread::sendFile( const QByteArray &f ) {
cfTime = 0;
cfParsed=0;
if(!t->isActive())
t->start(1000);
memcpy(¤tFile, f.leftRef(4).constData(), 4);
QTreeWidgetItem *it = fileMap.at(currentFile);
current->setFileName( it->text(6)+"/"+it->text(0) );
current->open(QIODevice::ReadOnly);
do {
sendFileChunk( current->read(1024) );
} while( !current->atEnd() );
socket->flush();
sendFileClose();
}