1

関数fromStdStringを使用できません。qtアシスタントでは、「この演算子は、QtがSTL互換性を有効にして構成されている場合にのみ使用できます」と述べられています。しかし、これを有効にする方法がわかりません。解決策を提供してください。

 int main(int argc, char *argv[])
    {
        std::string read;
        QString monthsArr[12];
        QStringList monthlist;
        std::ifstream readfile;
        readfile.open("/home/pcamdin/practice/qtcpp/qtprogs/qtcpp/months.txt");
        for(int i=0; i<6; i++)
        {
            readfile >> read;
            monthsArr[i] = fromStdString(read);
            monthlist << monthsArr[i];
            qDebug() << i+1 << ": " << monthsArr[i];
        }

        qDebug() << "the first " << monthlist.size() << " months of the year are " << monthlist;
    }
4

2 に答える 2

2

Qtが-no-stlで構成されている場合でも、std :: stringおよびコンテナーと対話できますが、一部の構文上の砂糖のみが無効になります。たとえば、std ::のデータのエンコーディングに応じて、QString :: fromLatin1(some_std_string.c_str()、some_std_string.size())、QString :: fromUtf8(...)、またはfromLocal8bit(...)を使用できます。ストリング。これは、エンコーディングの懸念を明確にするため、どのような場合でも間違いなく有利です。

于 2013-02-23T10:21:47.843 に答える
2

STLサポートはデフォルトでコンパイルされます(少なくとも自分でビルドする場合)。

4.8で私が気付いていないことが変更されていない限り、fromStdStringはQStringの静的メンバーであるため、次のように呼び出す必要があります。

monthsArr[i] = QString::fromStdString(read);

グローバル名前空間でfromStdStringを呼び出すだけでは、4.7.3ではコンパイルされません。

于 2013-02-22T12:01:58.837 に答える