先在QT5.7

class EnumTest :public QObject
{
Q_OBJECT
public:
EnumTest();
enum PINYINENUM
{
XYDA,
XYDB,
XYDC,
XYDD
};
Q_ENUM(PINYINENUM)
static QString getPinYin(int pinYinID);
};
#include "enumtest.h"

EnumTest::EnumTest()
{ } QString EnumTest::getPinYin(int pinYinID)
{
QMetaEnum metaEnum = QMetaEnum::fromType<EnumTest::PINYINENUM>();
const char* pinYinChars=metaEnum.valueToKey(pinYinID);
QString result(pinYinChars);
return result;
}
#include <QCoreApplication>

#include "enumtest.h"
#include <QDebug> int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv); qDebug()<<EnumTest::getPinYin( ); return a.exec();
}

编译到开发板上,报错

enumtest.h: error: ISO C++ forbids declaration of 'Q_ENUM' with no type [-fpermissive]
Q_ENUM(PINYINENUM)
开发板上QT版本5.2,没有这个Q_ENUM,只能另改方法

换成下下面的

class EnumTest :public QObject
{
Q_OBJECT
public:
EnumTest();
enum PINYINENUM
{
XYDA,
XYDB,
XYDC,
XYDD
};
Q_ENUMS(PINYINENUM)
static QString getPinYin(int pinYinID);
};
#include "enumtest.h"

EnumTest::EnumTest()
{ } QString EnumTest::getPinYin(int pinYinID)
{
const QMetaObject metaObject = EnumTest::staticMetaObject;
int enumIndex = metaObject.indexOfEnumerator("PINYINENUM");
if(enumIndex == -) { qDebug()<< "";
}
QMetaEnum en = metaObject.enumerator(enumIndex);
return QString(en.valueToKey(pinYinID)); }
#include <QCoreApplication>

#include "enumtest.h"
#include <QDebug>
void readData(); int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv); qDebug()<<EnumTest::getPinYin(); return a.exec();
}

编译通过。

QT下 enum转QString的更多相关文章

  1. Qt下QString转char*

    Qt下面,字符串都用QString,确实给开发者提供了方便,想想VC里面定义的各种变量类型,而且函数参数类型五花八门,经常需要今年新那个类型转换 Qt再使用第三方开源库时,由于库的类型基本上都是标准的 ...

  2. Qt下 QString转char*(转)

    Qt下面,字符串都用QString,确实给开发者提供了方便,想想VC里面定义的各种变量类型,而且函数参数类型五花八门,经常需要今年新那个类型转换 Qt再使用第三方开源库时,由于库的类型基本上都是标准的 ...

  3. zz Qt下 QString转char*和char []

    以下内容为转载:http://www.cnblogs.com/Romi/archive/2012/03/12/2392478.html -------------------------------- ...

  4. delphi中formatFloat代码初探(在qt下实现floatformat的函数)

    由于项目需要,需要在qt下实现floatformat的函数.之前写过一个,但是写得不好.决定重新写一个,参考delphi xe2下的实现.把xe2下的相关代码都看了一遍,xe2的代码思路在这里贴出来. ...

  5. Qt下libusb-win32的使用(转)

    源:Qt下libusb-win32的使用(一)打印设备描述符 主要是在前一篇的基础上,学习libusb-win32的API使用.程序很简单,就是打印指定USB设备的设备描述符(当然其他描述符也是可以的 ...

  6. QJsonDocument实现Qt下JSON文档读写

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QJsonDocument实现Qt下JSON文档读写     本文地址:http://tech ...

  7. QXmlStreamReader/QXmlStreamWriter实现Qt下xml文件读写

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QXmlStreamReader/QXmlStreamWriter实现Qt下xml文件读写   ...

  8. QT下UDP套接字通信——QUdpSocket 简单使用

    QT下UDP套接字通信--QUdpSocket QUdpSocket类提供一个UDP套接字. UDP(用户数据报协议)是一种轻量级.不可靠.面向数据报.无连接的协议.它可以在可靠性不重要的情况下使用. ...

  9. 【转】Qt下使用glut库

    ps:这个说的很明白,尤其是win10环境下用mingw环境时编程时碰到的问题, 1.加 windows.h 2.在.pro 添加libs     博文地址:Qt下使用glut库   本人使用的环境 ...

随机推荐

  1. JS获取访客IP+判断归属地+自动跳转

    由于公司业务需要,需要对网站特定地区的访客进行不同跳转.比如,上海的用户跳转到“shanghai.url.cn”,南京的用户跳转到“nanjing.url.cn”.下面就是我的实现方法,分享出来,顺便 ...

  2. 强化学习(六):n-step Bootstrapping

    n-step Bootstrapping n-step 方法将Monte Carlo 与 one-step TD统一起来. n-step 方法作为 eligibility traces 的引入,eli ...

  3. centos版本位数查看

    查看版本 cat /etc/issue cat /etc/redhat-release 查看位数 uname -a cat /proc/version   1. getconf LONG_BIT or ...

  4. Oracle单机Rman笔记[4]---RMAN联机备份

    备注:RMAN备份(仅支持基于spfile的备份,不支持基于init.ora配置的备份) 练习:开启ARCHIVELOG模式 \为归档的重做日志被指FRA和单独的归档日志目标 SQL>show ...

  5. fabric知识梳理图解

    https://blog.csdn.net/weixin_42117918/article/details/85230754 1.整体架构 2.交易流程 流程步骤: 应用程序通过SDK发送请求到Pee ...

  6. PDF 补丁丁 0.6.0.3363 版发布(修复无法保存应用程序设置的问题)

    本测试版修复了上一测试版无法保存应用程序设置的问题,以及导出导入信息文件的若干小问题.

  7. freemarker导出word档

    1.word另存为xml:2.xml文件后缀名改成ftl:3.编写完整json字符串备用:4.修改ftl中动态字段为json中对应字段名:5.编写java代码自动生成word文件:(注意:换行用< ...

  8. myBatis简学

    mybatis使用: ①拷贝相关mybits ②编写对象关系映射,一般都是实体类名+Mapper.xml的格式 ③编写mybits配置文件: a)配置环境 b)配置映射文件地址 ④编写对象操作方法: ...

  9. spoj mpoint

    题解: 判断每一次加进来的时候有几个被破坏,几个添加 然后单调栈维护 代码: #include<bits/stdc++.h> using namespace std; ; ,now,oo= ...

  10. JS变量的提升详解

    此次说明的是var与function的变量提升 那么先看一段代码 <script type="text/javascript"> console.log(test); ...