这一段代码错在哪里,执行的时候会出问题



  • @QString srcimgfilename;
    QString rawdatafilename;
    QStringList filelist;
    filelist = QFileDialog::getOpenFileNames(this,tr("选择文件"),".",tr("Text files (.txt);;XML files (.xml)"));
    QStringList::const_iterator it = filelist.constBegin();
    while(it != filelist.constEnd())
    {
    leftpointfilename = (*it).toLocal8Bit;
    std::cout<<(*it).toLocal8Bit().constData()<<std::endl;
    ++it;
    rightpointfilename = (*it).toLocal8Bit;
    std::cout<<(*it).toLocal8Bit().constData()<<std::endl;
    }@



  • @Text files (.txt);;XML files (.xml)@



  • 当我想取出文件夹里面选择的部分文件时,程序会在while循环里面出不来



  • 尝试不用iterator,而用更加方便的foreach伪关键字。
    @
    foreach( QString fileName, filelist )
    {
    std::cout << qPrintable( fileName ) << '\n';
    }
    @



  • (*it).toLocal8Bit;?????
    toLocal8Bit不是接口吗?不是应该(*it).toLocal8Bit()吗?



  • it ++ 放在 循环的最后面试试看行不行



  • 永远不要写:(*it).toLocal8Bit().constData();这样的代码!
    toLocal8Bit()是产生临时对象,constData返回一个临时对象的指针,结果呢。。。。


Log in to reply