第一步:枚举转字符串 QMetaEnum 实例化枚举名 = QMetaEnum::fromType<枚举所在类::枚举名>();
#include<QMetaEnum>
QMetaEnum EnumDateBits = QMetaEnum::fromType<QSerialPort::DataBits>();
第二步:枚举转字符串
红色字体是 枚举转化为字符串,棕色字体是 枚举值i 对应的 枚举 ,紫色是枚举的总数量
EnumBaudRate.valueToKey() EnumBaudRate.value(i) EnumDateBits.keyCount()
//将SerialPortDateBits转化为字符串
void Mr_G_ModbusRTU::SerialPortDateBits_ToComboBox(QComboBox *DateBits_CB)
{
for(int i=0;i<EnumDateBits.keyCount();i++)
{
//把波特率枚举转化为字符串并且加载到下拉框中
DateBits_CB->addItem(EnumBaudRate.valueToKey(EnumBaudRate.value(i)));
}
}
第一步:字符串转枚举
红色字体是 字符串 转 枚举 橙色字体是 将QString转char本质是将QString转QByteArray
EnumDateBits.keysToValue( “char *” , bool isok) DataBitsString.toLocal8Bit().data()
//将字符串转数据位枚举
QSerialPort::DataBits Mr_G_ModbusRTU::DateBits_stringToEnum(QString DataBitsString)
{
bool isok=false;
return (QSerialPort::DataBits)EnumDateBits.keysToValue(DataBitsString.toLocal8Bit().data(),&isok) ;
}