一、QString转number

QString number(long n, int base = )

QString number(ulong n, int base = )

QString number(int n, int base = )

QString number(uint n, int base = )

QString number(qlonglong n, int base = )

QString number(qulonglong n, int base = )

QString number(double n, char format = 'g', int precision = )

整形的转换格式都是一样的,第一个参数是十进制要转换的整数,第二个参数指定以什么进制来转换,默认是十进制,比如:

QString strNumDec = QString::number(, );  //转化成10进制

QString strNumHex = QString::number(, );    //16进制

QString strNumBit = QString::number(, );     //2进制

第二个参数base必须在[2,36]之间,当base为10以外的值时,第一个参数n将被视为无符号整数。

二、number 转 QString

double toDouble(bool * ok = ) const
float toFloat(bool * ok = ) const
int toInt(bool * ok = , int base = ) const
long toLong(bool * ok = , int base = ) const
qlonglong toLongLong(bool * ok = , int base = ) const
short toShort(bool * ok = , int base = ) const

QString也提供了一系列转换成数值的函数,参数ok指示转换是否出错,参数base指示当前QString是什么进制,如

QString str = "";
bool ok; int numBit = str.toInt(&ok, ); int numOct = str.toInt(&ok, ); int numDec = str.toInt(&ok, ); int numHex = str.toInt(&ok, );

三、QPixmap加载图片并获取图片宽和高

void Dialog::paintEvent(QPaintEvent *)
{
QPainter painter(this);
QPixmap pix;
//加载图片
pix.load("D:\\1001.jpg");
//获得图片的宽和高
qreal width = pix.width();
qreal height = pix.height();
//图片放大两倍
pix = pix.scaled(width*,height*,Qt::KeepAspectRatio); painter.drawPixmap(,,,,pix);
}

四、QString与String转换

//QString转换String
string s = qstr.toStdString(); //String转换QString QString qstr2 = QString::fromStdString(s);

这样虽然能成功,但是会出现中文乱码情况。

转化与乱码处理

std::string cstr;
QString qstring;
//从std::string 到QString
qstring = QString(QString::fromLocal8Bit(cstr.c_str()));
//从QString 到 std::string
cstr = string((const char *)qstring.toLocal8Bit());
//不需要从gbk转到utf8
QString value_content = QString::fromStdString(vec[i].content);
QString value_classname = QString::fromStdString(vec[i].classname);

五、判断文件或者文件夹是否存在

1. 判断文件夹是不是存在
参数说明:
QString fullPath;//文件夹全路径

/*方法1*/
bool isDirExist(QString fullPath)
{
QDir dir(fullPath);
if(dir.exists())
{
return true;
}
return false;
}
/*方法2*/
bool isDirExist(QString fullPath)
{
QFileInfo fileInfo(fullPath);
if(fileInfo.isDir())
{
return true;
}
return false;
}

2. 判断文件是不是存在
参数说明:
QString fullFileName;//文件全路径(包含文件名)

bool isFileExist(QString fullFileName)
{
QFileInfo fileInfo(fileFullName);
if(fileInfo.isFile())
{
return true;
}
return false;
}

六、图像旋转

第一种方案

使用 QPixmap 的 transformed 函数来实现旋转,这个函数默认是以图片中心为旋转点,不能设置旋转的中心点,使用如下:

QMatrix matrix;
matrix.rotate(); QLabel *Label= new QLabel();
Label->setPixmap(QPixmap(“:/images.png”).transformed(matrix, Qt::SmoothTransformation));

该段程序实现的效果是使图片顺时针旋转 45 度。

第二种方案

使用 QPainter 这位“画家”,示例程序如下:

void Widget::paintEvent(QPaintEvent *)
{
QPainter painter(this);
QPixmap disc(":/disc.png"); /* 碟机转动 */
if(imageRotate++ == )
imageRotate = ;
/* 设定旋转中心点 */
painter.translate(,);
/* 旋转的角度 */
painter.rotate(imageRotate);
/* 恢复中心点 */
painter.translate(-,-);
/* 画图操作 */
painter.drawPixmap(,,,, disc);
}

QT学习笔记2:QT中常用函数的更多相关文章

  1. 【Qt学习笔记】Qt+VS2010的配置

    http://blog.csdn.net/jocyln9026/article/details/8575218 关于Qt Qt是1991年由Trolltech公司开发的一个跨平台的C++图形用户界面应 ...

  2. Python 学习笔记(五)常用函数

    Python内建函数 四舍五入: round() 绝对值: abs() >>> round(1.543,2) 保留两位小数,四舍五入为1.54 1.54 >>> r ...

  3. Java学习笔记五:Java中常用的运算符

    Java中常用的运算符 运算符是一种“功能”符号,用以通知 Java 进行相关的运算.譬如,我们需要将变量 score 的值设置为 20 ,这时候就需要一个“=”,告诉程序需要进行赋值操作. Java ...

  4. Python+Qt学习随笔:PyQt中常用的事件处理函数

    在PyQt图形界面中,我们经常要捕获特定事件如鼠标按键按下.鼠标按下等事件以执行特定操作,可以通过重写组件对象的相关事件处理函数来实现相关处理,具体特定事件常用的包括如下: keyPressEvent ...

  5. Qt学习笔记:Qt中使用Lua

    今天想在Qt中使用Lua进行数据操作 结果发现在Qt中使用Lua的文章较少,虽然很简单,但是还是写出来提供入门,顺便记录一下 我使用的是Qt Creator 3.4.2,用的是mingw4.9.2的编 ...

  6. Qt学习笔记-嵌入式qt程序支持显示中文

    移植后得qt程序在开发板上运行时无法显示中文. 拷贝windows中的字体也不行. 从网上找到方法. 添加以下代码:需要头文件  #include <QTextCodec> QTextCo ...

  7. php正规则表达式学习笔记(几个常用函数的区别)

    preg_mache()函数和 preg_mache_all()函数的区别: preg_mache()只会匹配规则中的字符一次, preg_mache_all()会匹配符合条件的所有字符! 例子对比: ...

  8. SQL学习笔记之项目中常用的19条MySQL优化

    在写文章之前,首先感谢 飞友科技 陆老师提供的文档.. 声明一下:下面的优化方案都是基于 “ Mysql-索引-BTree类型 ” 的 0x00 EXPLAIN 做MySQL优化,我们要善用 EXPL ...

  9. 学习笔记:_lodash.js常用函数2

    _.pick(object, [props]) 创建一个从object中选中的属性的对象. 示例: var object = { 'a': 1, 'b': '2', 'c': 3 }; _.pick( ...

  10. tensorflow学习笔记(三)常用函数

    上一篇简单介绍了tensorflow的基本操作,这一篇介绍一些常用的函数. tf.constant() tf.constant ( value , dtype = None , shape = Non ...

随机推荐

  1. 【BZOJ】2125: 最短路 圆方树(静态仙人掌)

    [题意]给定带边权仙人掌图,Q次询问两点间最短距离.n,m,Q<=10000 [算法]圆方树处理仙人掌问题 [题解]树上的两点间最短路问题,常用倍增求LCA解决,考虑扩展到仙人掌图. 先对仙人掌 ...

  2. [HNOI2009]有趣的数列 题解(卡特兰数)

    [HNOI2009]有趣的数列 Description 我们称一个长度为2n的数列是有趣的,当且仅当该数列满足以下三个条件: (1)它是从1到2n共2n个整数的一个排列{ai}: (2)所有的奇数项满 ...

  3. python中随机数生成

    1.random.random random.random()用于生成一个0到1的随机符小数: 0 <= n < 1.0 2.random.uniform random.uniform的函 ...

  4. 商城项目(ssm+dubbo+nginx+mysql统合项目)总结(3)

    我不会在这里贴代码和详细步骤什么的,我觉得就算我把它贴出来,你们照着步骤做还是会出很多问题,我推荐你们去看一下黑马的这个视频,我个人感觉很不错,一步一步走下来可以学到很多东西.另外,视频和相关文档的话 ...

  5. redis基础之redis-sentinel(哨兵集群)(六)

    前言 redis简单的主从复制在生产的环境下可能是不行的,因为从服务器只能读不能写,如果主服务器挂掉,那么整个缓存系统不能写入了:redis自带了sentinel(哨兵)机制可以实现高可用. redi ...

  6. 78.PL和PS通过BRAM交互共享数据

    本篇文章目的是使用Block Memory进行PS和PL的数据交互或者数据共享,通过zynq PS端的Master GP0端口向BRAM写数据,然后再通过PS端的Mater GP1把数据读出来,将结果 ...

  7. Linux中等待队列的实现

    1.       等待队列数据结构 等待队列由双向链表实现,其元素包括指向进程描述符的指针.每个等待队列都有一个等待队列头(wait queue head),等待队列头是一个类型为wait_quequ ...

  8. Machine Learning系列--L0、L1、L2范数

    今天我们聊聊机器学习中出现的非常频繁的问题:过拟合与规则化.我们先简单的来理解下常用的L0.L1.L2和核范数规则化.最后聊下规则化项参数的选择问题.这里因为篇幅比较庞大,为了不吓到大家,我将这个五个 ...

  9. 简约而不简单的Django

    本文面向:有python基础,刚接触web框架的初学者. 环境:windows7   python3.5.1  pycharm专业版  Django 1.10版 pip3 一.Django简介 百度百 ...

  10. mysql 数据库备份及恢复

    1.备份 # 导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名mysqldump -–add-drop-table -uusername -ppassword da ...