在 Qt 中将 int 转换为 QByteArray

新手上路,请多包涵

我正在尝试将 int 转换为 QByteArray 。我用这个方法 QByteArray::number(m_vman); 吗?

我正在尝试使用 number() 获得一个 int 到 QByteArray

我正在尝试以下代码,但 字节数组 为零

    QByteArray vmanByteArray, vheaterByteArray;
    QDataStream streamVMan(&vmanByteArray, QIODevice::WriteOnly);
    QDataStream streamVHeater(&vheaterByteArray, QIODevice::WriteOnly);

    streamVMan << m_vman;
    streamVHeater << m_vheater;

QByteArray arr = m_htman ? vmanByteArray : vheaterByteArray;

原文由 andreahmed 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.6k
2 个回答

数组不为零,您的代码工作正常:

 #include <QtCore>

QByteArray test(bool m_htman) {
   int m_vman = 1;
   int m_vheater = 2;
   QByteArray vmanByteArray, vheaterByteArray;
   QDataStream streamVMan(&vmanByteArray, QIODevice::WriteOnly);
   QDataStream streamVHeater(&vheaterByteArray, QIODevice::WriteOnly);

   streamVMan << m_vman;
   streamVHeater << m_vheater;

   QByteArray arr=m_htman ?  vmanByteArray: vheaterByteArray;
   return arr;
}

int main() {
   auto one = QByteArray() + '\0' + '\0' + '\0' + '\1';
   auto two = QByteArray() + '\0' + '\0' + '\0' + '\2';
   Q_ASSERT(test(true) == one);
   Q_ASSERT(test(false) == two);
}

如果存储在其中的值为零,则它可能是“零”,但那是正确的。

原文由 Kuba hasn‘t forgotten Monica 发布,翻译遵循 CC BY-SA 3.0 许可协议

你可以简单地这样做。

 int myInt = 123;
QByteArray q_b;
q_b.setNum(myInt);

原文由 Kamlesh 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题