2017-11-02 6 views
0

私が最初にそれを試してみました方法ですが、私はエラーが「何のオペレータが 『QTextStream』は、タイプの左側のオペランドを取り見つからないか、受け入れ可能な変換はありません」qtのQTextStreamを使用してQListストアドアイテムを書き込むにはどうすればよいですか?

QList<QString>lNamesList; 

    void write(){ 

     QFile data("E:/Test/output.h"); 

     if (data.open(QFile::WriteOnly)) 
    { 
      QTextStream out (&data); 

     nameList.append("Name1"); 

      out << NameList; 

     } 
    } 
int main(int argc, char *argv[]) 
{ 
    QCoreApplication a(argc, argv); 

    write(); 

    return a.exec(); 
} 
+0

'QTextStream'は' QList'上では動作しませんが、あなたは書くことができますあなた自身の単純なループ、または何が問題なのですか? 「名前付きリスト」を「名前付きリスト」に置き換えてください。<< name ;; – xander

+0

ありがとうございました。あなたが言ったようにループで動作しましたが、代わりにforeachに変更しました –

答えて

1

あなたが直接あなたのnameListを養うことはできません取得QTextStreamにあなたはstring or QStringを与えることができます。

for(const QString& str : nameList){ 
    out << str; 
} 

注:だから、このようなものになり、あなたのQListをループする場合があります詳細はthe docsを参照し

+0

あなたは正しいです。リストをQtextstreamにフィードできませんでした。しかし、私はforループについてもエラーが発生し続けました。だから私はこのようなforeachループで修正しました。 foreach(const QString&str、NameList){ out << str; } –

+0

C++ 11以降、各ループのC++は「新」です。使用しているのはQt固有の古いスタイルのマクロです。引き続き使用することができますが、新しい構文機能を使用する場合は、通常は標準のC++が優先されます。新しいC++バージョンをQtプロジェクト設定ファイルで使用したいのであれば、デフォルトではまだ有効になっていないと思います。あなたのコンパイラがそれをサポートしているなら 'CONFIG + = C++ 11'。 – xander

関連する問題