QT枚举类型与字符串类型相互转换

Posted DC

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT枚举类型与字符串类型相互转换相关的知识,希望对你有一定的参考价值。

在QT中将枚举类型注册(QT_Q_ENUM或QT_Q_FLAG)后,就可以利用QT的元对象进行枚举类型与字符串类型转换了。

代码示例:

#include <QtCore/QMetaEnum>

int main() {
    QMetaEnum metaEnum = QMetaEnum::fromType<Qt::Alignment>();

    //字符串转枚举值
    Qt::Alignment alignment = (Qt::Alignment)metaEnum.keyToValue("Qt::AlignLeft");
    alignment = (Qt::Alignment)metaEnum.keysToValue("Qt::AlignLeft | Qt::AlignVCenter");

    //枚举值转字符串
    const char* s = metaEnum.valueToKey(Qt::AlignCenter);
    return 0;
}

在qss中我们可以这样使用枚举类型:

QTabBar#CustomTabBar {
    /* Qt::AlignmentFlag定义 */
    qproperty-text_align: "AlignLeft | AlignVCenter";
}

 

以上是关于QT枚举类型与字符串类型相互转换的主要内容,如果未能解决你的问题,请参考以下文章

宏定义方式 进行枚举类型和枚举类型的相互转换

QString与char*的相互转换

QString, Std::string, char *相互转换

jni jstring类型与c++字符串类型相互转换

python中日期字符串与datetime类型的相互转换

int,byte,short、char之间是怎么相互转换的,只求如何计算(动笔就可算的,不是程序哦)