Qt枚举里面可以定义字符串吗
在Qt中,枚举(Enumeration)只能定义整型值,不能直接定义字符串。枚举可以用于定义一组具有相似特征的常量,通过枚举值可以方便地对这些常量进行引用和比较。
如果你需要在枚举中使用字符串,可以通过以下方式实现:
- 使用QStringList:可以在枚举中定义整型值,然后在程序中使用QStringList来存储对应的字符串,并使用整型值作为索引进行访问。
enum MyEnum {
Value1,
Value2,
Value3,
// ...
};
QStringList enumStrings = {"String1", "String2", "String3"};
QString str = enumStrings[Value1]; // 获取枚举值Value1对应的字符串
- 使用QMap:可以在枚举中定义整型值,然后使用QMap来存储整型值与字符串的映射关系,通过整型值进行访问。
enum MyEnum {
Value1,
Value2,
Value3,
// ...
};
QMap<MyEnum, QString> enumMap = {
{Value1, "String1"},
{Value2, "String2"},
{Value3, "String3"}
};
QString str = enumMap[Value1]; // 获取枚举值Value1对应的字符串
这样,你可以在枚举中定义整型值,同时通过QStringList或QMap来实现与字符串的映射,从而达到使用字符串的目的
原文地址: https://www.cveoy.top/t/topic/iv2o 著作权归作者所有。请勿转载和采集!