我正在尝试将int转换为QBytearray。我正在使用这个方法QByteArray :: number(m_vman); 这是对的吗?
我正在尝试使用number()来获取QBytearray的int
我正在尝试以下代码,但bytearray为零
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;
答案 0 :(得分:5)
你可以这样做。
int myInt = 123;
QByteArray q_b;
q_b.setNum(myInt);
答案 1 :(得分:2)
与实际问题标题相关,以下静态函数应该可以正常工作:
答案 2 :(得分:1)
我标记为重复,因为你可以更好地搜索(严肃地说,有十几个这样的问题)。无论如何,这是最简单的解决方案:
int myInt;
QByteArray bA;
QDataStream stream(&bA, QIODevice::WriteOnly);
stream << myInt;
答案 3 :(得分:0)
数组不为零,您的代码工作正常:
#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);
}
如果存储在其中的值为零,则可能为“零”,但这是正确的。