先在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. mac常用操作

    Command+Shift+. 可以显示隐藏文件.文件夹 touch a.txt 新建txt文件

  2. 爬虫(五)requests模块2

    引入 有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests模块常规操作时,往往达不到我们想要的目的,例如: #!/usr/bin/ ...

  3. ReactNative快速开发App一步到位

    http://www.ifenxiang.net/thread-626-1-1.html

  4. 基于VC++的网络扫描器设计与实现

    本文正文其实是自己的毕业论文,现在搬上来有两个原因. 一是之前大学的文档都放在百度网盘上,大概去年的时候百度网盘改版搞得不太稳定,文件夹移动次数一多里边就会有一些文件丢失了,也没有很在意.但前几天看申 ...

  5. Previous operation has not finished;run 'cleanup' if it was interrupted;Please execute the 'Cleanup' command.

    今天更新文件夹时svn报错如下 提示说让clean up,但是clean up又提示fail,让继续clean up,这样就陷入死循环了…… 搜了多种解决办法后找到原因:当时正在打开着svn的某个文件 ...

  6. linux图像界面连接-xdm

    有两种方法可以激活 --:修改/etc/gdm/custom.conf文件在 [security]字段下增加AllowRemoteRoot=true [xdmcp]字段下增加Enable=true - ...

  7. 网页链接跳转qq聊天界面以及QQ群是什么实现的

    网页可以唤起QQ群,这我们都知道可以做到,那如何唤起呢?下面就做一个简单的介绍,希望可以帮助到有需要的朋友 1.官方提供的几种加群的链接 官方的加群代码的获取前提是我们具有权限(也就是群主或管理权限) ...

  8. unity中遍历Transform的子物体

    1.遍历Transform直接子transform private void Start() { var Equipment = building.transform.FindChild(" ...

  9. 关于sql注入漏洞的挖掘及渗透工具简介

    大量的现代企业采用Web应用程序与其客户无缝地连接到一起,但由于不正确的编码,造成了许多安全问题.Web应用程序中的漏洞可使黑客获取对敏感信息(如个人数据.登录信息等)的直接访问. Web应用程序准许 ...

  10. java多线程面试中常见知识点

    1.进程和线程 (1)进程是资源分配的最小单位,线程是程序执行的最小单位. (2)进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段.堆栈段和数据段,这种操作非 ...