我正在 QT 版本 4.8 和 5.12.9 中编译以下代码。
QHash<QString, int> m_userDataHash;
m_userDataHash.insert("white", 1);
m_userDataHash.insert("yellow", 3);
m_userDataHash.insert("lightblue", 5);
m_userDataHash.insert("darkblue", 7);
m_userDataHash.insert("pink", 9);
m_userDataHash.insert("red", 11);
m_userDataHash.insert("green", 13);
m_userDataHash.insert("black", 15);
m_userDataHash.insert("grey", 17);
QHashIterator<QString, int> i(m_userDataHash);
while (i.hasNext())
{
i.next();
ui->ColorCombo->addItem(i.key());
}
由于插入顺序在不同的 qt 版本中不同,因此此代码的行为不同。
在 Qt 5.12.9 中
在 Qt 4.8 中
我怎么解决这个问题?为什么会这样?
我检查了 QHash 文档,但什么也想不通。 https://doc.qt.io/qt-5/qhash.html#insert