QT学习笔记2:QT中常用函数
一、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中常用函数的更多相关文章
- 【Qt学习笔记】Qt+VS2010的配置
http://blog.csdn.net/jocyln9026/article/details/8575218 关于Qt Qt是1991年由Trolltech公司开发的一个跨平台的C++图形用户界面应 ...
- Python 学习笔记(五)常用函数
Python内建函数 四舍五入: round() 绝对值: abs() >>> round(1.543,2) 保留两位小数,四舍五入为1.54 1.54 >>> r ...
- Java学习笔记五:Java中常用的运算符
Java中常用的运算符 运算符是一种“功能”符号,用以通知 Java 进行相关的运算.譬如,我们需要将变量 score 的值设置为 20 ,这时候就需要一个“=”,告诉程序需要进行赋值操作. Java ...
- Python+Qt学习随笔:PyQt中常用的事件处理函数
在PyQt图形界面中,我们经常要捕获特定事件如鼠标按键按下.鼠标按下等事件以执行特定操作,可以通过重写组件对象的相关事件处理函数来实现相关处理,具体特定事件常用的包括如下: keyPressEvent ...
- Qt学习笔记:Qt中使用Lua
今天想在Qt中使用Lua进行数据操作 结果发现在Qt中使用Lua的文章较少,虽然很简单,但是还是写出来提供入门,顺便记录一下 我使用的是Qt Creator 3.4.2,用的是mingw4.9.2的编 ...
- Qt学习笔记-嵌入式qt程序支持显示中文
移植后得qt程序在开发板上运行时无法显示中文. 拷贝windows中的字体也不行. 从网上找到方法. 添加以下代码:需要头文件 #include <QTextCodec> QTextCo ...
- php正规则表达式学习笔记(几个常用函数的区别)
preg_mache()函数和 preg_mache_all()函数的区别: preg_mache()只会匹配规则中的字符一次, preg_mache_all()会匹配符合条件的所有字符! 例子对比: ...
- SQL学习笔记之项目中常用的19条MySQL优化
在写文章之前,首先感谢 飞友科技 陆老师提供的文档.. 声明一下:下面的优化方案都是基于 “ Mysql-索引-BTree类型 ” 的 0x00 EXPLAIN 做MySQL优化,我们要善用 EXPL ...
- 学习笔记:_lodash.js常用函数2
_.pick(object, [props]) 创建一个从object中选中的属性的对象. 示例: var object = { 'a': 1, 'b': '2', 'c': 3 }; _.pick( ...
- tensorflow学习笔记(三)常用函数
上一篇简单介绍了tensorflow的基本操作,这一篇介绍一些常用的函数. tf.constant() tf.constant ( value , dtype = None , shape = Non ...
随机推荐
- .NET面试题系列(一)基本概念
什么是CLR CLR常用简写词语,CLR是公共语言运行库(Common Language Runtime)和Java虚拟机一样也是一个运行时环境,它负责资源管理(内存分配和垃圾收集等),并保证应用和底 ...
- rxjs自定义operator
rxjs自定义operator
- bootstrap-select,selectpicker 用法详细:通过官方文档翻译
用过selectpicker的都说好~但是网上中文的教程又找不到比较完整的用法,于是去官网看了下 顺便弄过来翻译一下: 选项可以通过数据属性或JavaScript传递.对于数据属性,附加选项名称dat ...
- 59、有用过with statement吗?它的好处是什么?
python中的with语句是用来干嘛的?有什么作用? with语句的作用是通过某种方式简化异常处理,它是所谓的上下文管理器的一种 用法举例如下: with open('output.txt', 'w ...
- 飘雪效果的swf
//第一帧动作 import flash.events.Event; ;k<;k++) { var xuehua:xue= new xue(); xuehua.alpha = Math.rand ...
- 深入理解Spring系列之一:开篇
转载 https://mp.weixin.qq.com/s?__biz=MzI0NjUxNTY5Nw==&mid=2247483810&idx=1&sn=a2df14fdb63 ...
- 64_p8
python2-cotyledon-tests-1.6.7-2.fc26.noarch.rpm 12-Feb-2017 10:28 23182 python2-couchdb-1.0-6.fc26.n ...
- 008 BlockingQueue理解
原文https://www.cnblogs.com/WangHaiMing/p/8798709.html 本篇将详细介绍BlockingQueue,以下是涉及的主要内容: BlockingQueue的 ...
- NEERC2012
NEERC2012 A - Addictive Bubbles 题目描述:有一个\(n \times m\)的棋盘,还有不同颜色的棋子若干个,每次可以消去一个同种颜色的联通块,得到的分数为联通块中的棋 ...
- angular项目中使用angular-material2
Step 1: Install Angular Material and Angular CDK npm install --save @angular/material @angular/cdk n ...