QT下 enum转QString
先在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的更多相关文章
- Qt下QString转char*
Qt下面,字符串都用QString,确实给开发者提供了方便,想想VC里面定义的各种变量类型,而且函数参数类型五花八门,经常需要今年新那个类型转换 Qt再使用第三方开源库时,由于库的类型基本上都是标准的 ...
- Qt下 QString转char*(转)
Qt下面,字符串都用QString,确实给开发者提供了方便,想想VC里面定义的各种变量类型,而且函数参数类型五花八门,经常需要今年新那个类型转换 Qt再使用第三方开源库时,由于库的类型基本上都是标准的 ...
- zz Qt下 QString转char*和char []
以下内容为转载:http://www.cnblogs.com/Romi/archive/2012/03/12/2392478.html -------------------------------- ...
- delphi中formatFloat代码初探(在qt下实现floatformat的函数)
由于项目需要,需要在qt下实现floatformat的函数.之前写过一个,但是写得不好.决定重新写一个,参考delphi xe2下的实现.把xe2下的相关代码都看了一遍,xe2的代码思路在这里贴出来. ...
- Qt下libusb-win32的使用(转)
源:Qt下libusb-win32的使用(一)打印设备描述符 主要是在前一篇的基础上,学习libusb-win32的API使用.程序很简单,就是打印指定USB设备的设备描述符(当然其他描述符也是可以的 ...
- QJsonDocument实现Qt下JSON文档读写
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QJsonDocument实现Qt下JSON文档读写 本文地址:http://tech ...
- QXmlStreamReader/QXmlStreamWriter实现Qt下xml文件读写
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QXmlStreamReader/QXmlStreamWriter实现Qt下xml文件读写 ...
- QT下UDP套接字通信——QUdpSocket 简单使用
QT下UDP套接字通信--QUdpSocket QUdpSocket类提供一个UDP套接字. UDP(用户数据报协议)是一种轻量级.不可靠.面向数据报.无连接的协议.它可以在可靠性不重要的情况下使用. ...
- 【转】Qt下使用glut库
ps:这个说的很明白,尤其是win10环境下用mingw环境时编程时碰到的问题, 1.加 windows.h 2.在.pro 添加libs 博文地址:Qt下使用glut库 本人使用的环境 ...
随机推荐
- (桥接)完美解决linux设置静态ip。
网上找来找去都是一些隔靴挠痒的操作,这里引自https://blog.csdn.net/yefeng0810/article/details/81150605.感谢大佬的博客.
- asp.net 跨域访问
摘自 https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/enabling-cross-origin-requests- ...
- 常见Python脚本
---恢复内容开始--- 1.请按照这样的日期格式(xxxx-xx-xx)每日生成一个文件,例如今天生成的文件为2019-04-26.log, 并且把磁盘的使用情况写到到这个文件中. import t ...
- 杨力第一次jjave作业
感觉jave学起来比c语言难一点,格式要求较高,有更多的东西要记,但是只要认真学应该不是很难,自己应该多写程序.
- 怎么让html中 还是显示<button> 而不进行编译
toTXT(str) { var RexStr = /\<|\>|\"|\'|\&| | /g str = str.replace(RexStr, ...
- Treap标准模板
这是Treap的模板程序,支持Left/Right Rotate,Find the maxnum/minnum,Find the predecessor/successor of a node,Add ...
- maven 项目提示找不到javax.servlet.xxx问题解决
1.https://search.maven.org/search?q=g:javax.servlet%20AND%20a:javax.servlet-api&core=gav 2.下载3.1 ...
- Saiku数据库迁移H2迁移到Mysql(二十二)
Saiku数据库迁移H2迁移到Mysql Saiku默认使用H2数据库来存储saiku的用户与角色信息,我们可以根据角色来做saiku的权限控制,然后将角色分配给用户 ,该用户就会有对应的约束了! 由 ...
- Jmeter之正则表达式提取器应用
说到Jmeter正则表达式提取器的应用,就不得不说到关联.所谓关联,就是把应用中动态变化返回的数据获取到,把它保存为一个参数,提供给后面需要用到的地方进行使用. Jmeter中关联是通过“添加—后置处 ...
- webpack 简单配置
webpack.config.js const path = require('path'); const HtmlWebpackPlugin=require('html-webpack-plugin ...