我在 Windows 上使用 QT Creator 構建了一個快速服務器,一切正常,我嘗試在我的另一臺機器(Ubuntu)上運行相同的代碼,但我得到了錯誤,特別是在這一行:
QString max_colorbar = doc["colorbar"].toString();
我得到的錯誤是:
no match for ‘operator[]’ (operand types are ‘QJsonDocument’ and ‘const char [9]’)
讓我感到困惑的是,如果相同的代碼在 Windows 上運行(它是跨平臺的),為什么我需要更改任何內容,我認為這可能是因為 QT 版本,但我在 linux 上檢查了我的版本,它是:
QMake version 3.1
Using Qt version 5.9.5
我做錯什么了嗎?
uj5u.com熱心網友回復:
這是因為引入了 const QJsonValue QJsonDocument::operator[](const QString &key) const函式,Qt5.10而你在Qt5.9.5.
你可以改變你的代碼
QString max_colorbar = doc["colorbar"].toString();
如下也建立在Qt5.9.5之上
QString max_colorbar = doc.object().value("colorbar").toString();
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/482816.html
