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库 本人使用的环境 ...
随机推荐
- 一个axios的简单教程
转载于:https://www.jianshu.com/p/13cf01cdb81f 转载仅供个人学习 首先要明白的是axios是什么:axios是基于promise(诺言)用于浏览器和node.js ...
- linux 7 关闭防火墙 开启sshd服务
启动一个服务:systemctl start firewalld.service关闭一个服务:systemctl stop firewalld.service重启一个服务:systemctl rest ...
- nodeJs安装Vue-cli
1,安装nodejs安装包,注意安装的路径 2,安装完成node,node有自带的npm,可以直接在cmd中,找到nodeJs安装的路径下,进行命令行全局安装vue-cli.(npm install ...
- WinForm界面设计-Button添加背景图去边框
转自:https://www.cnblogs.com/tommy-huang/p/4283538.html 1.既然是添加背景图片 所以这里应该使用 Button.BackgroudImage = & ...
- sql server error 53
主要是计算机名修改了,通过服务器名称,浏览更多,选择“数据库引擎”里面的第一个,就可以登陆了
- 洛谷1855 榨取kkksc03
题目描述 洛谷2的团队功能是其他任何oj和工具难以达到的.借助洛谷强大的服务器资源,任何学校都可以在洛谷上零成本的搭建oj并高效率的完成训练计划. 为什么说是搭建oj呢?为什么高效呢? 因为,你可以上 ...
- JavaScript(ES6)学习笔记-Set和Map与数组和对象的比较(二)
一.Map,Set,Array对比: 1.增 let map = new Map(); let set = new Set(); let array = []; map.set('t',1); //M ...
- 基于Live555实现RtspServer及高清高分辨率和高码率视频传输优化
基于Live555实现RtspServer及高清高码率视频传输优化 最近做了一些pc和嵌入式平台的RTSP服务器项目,大多数的要求是简单但是功能全面,并且性能还要强劲.综合考虑后,基本都是在基于liv ...
- Linux虚机安装配置Tomcat
d第一步:下载Tomcat包,网址http://tomcat.apache.org/ 选择tar.gz包下载,并传到虚机中 第二步:解压下载好的Tomcat包 命令:tar -zxvf apache- ...
- VS2013中调驱动
https://msdn.microsoft.com/en-us/library/windows/hardware/jj200334(v=vs.85).aspx 需要注意的就是 debugport:n ...