一、QString转number

  1. QString number(long n, int base = )
  2.  
  3. QString number(ulong n, int base = )
  4.  
  5. QString number(int n, int base = )
  6.  
  7. QString number(uint n, int base = )
  8.  
  9. QString number(qlonglong n, int base = )
  10.  
  11. QString number(qulonglong n, int base = )
  12.  
  13. QString number(double n, char format = 'g', int precision = )

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

  1. QString strNumDec = QString::number(, ); //转化成10进制
  2.  
  3. QString strNumHex = QString::number(, ); //16进制
  4.  
  5. QString strNumBit = QString::number(, ); //2进制

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

二、number 转 QString

  1. double toDouble(bool * ok = ) const
  2. float toFloat(bool * ok = ) const
  3. int toInt(bool * ok = , int base = ) const
  4. long toLong(bool * ok = , int base = ) const
  5. qlonglong toLongLong(bool * ok = , int base = ) const
  6. short toShort(bool * ok = , int base = ) const

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

  1. QString str = "";
  2. bool ok;
  3.  
  4. int numBit = str.toInt(&ok, );
  5.  
  6. int numOct = str.toInt(&ok, );
  7.  
  8. int numDec = str.toInt(&ok, );
  9.  
  10. int numHex = str.toInt(&ok, );

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

  1. void Dialog::paintEvent(QPaintEvent *)
  2. {
  3. QPainter painter(this);
  4. QPixmap pix;
  5. //加载图片
  6. pix.load("D:\\1001.jpg");
  7. //获得图片的宽和高
  8. qreal width = pix.width();
  9. qreal height = pix.height();
  10. //图片放大两倍
  11. pix = pix.scaled(width*,height*,Qt::KeepAspectRatio);
  12.  
  13. painter.drawPixmap(,,,,pix);
  14. }

四、QString与String转换

  1. //QString转换String
  2. string s = qstr.toStdString();
  3.  
  4. //String转换QString
  5.  
  6. QString qstr2 = QString::fromStdString(s);

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

转化与乱码处理

  1. std::string cstr;
  2. QString qstring;
  3. //从std::string 到QString
  4. qstring = QString(QString::fromLocal8Bit(cstr.c_str()));
  5. //从QString 到 std::string
  6. cstr = string((const char *)qstring.toLocal8Bit());
  7. //不需要从gbk转到utf8
  8. QString value_content = QString::fromStdString(vec[i].content);
  9. QString value_classname = QString::fromStdString(vec[i].classname);

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

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

  1. /*方法1*/
  2. bool isDirExist(QString fullPath)
  3. {
  4. QDir dir(fullPath);
  5. if(dir.exists())
  6. {
  7. return true;
  8. }
  9. return false;
  10. }
  11. /*方法2*/
  12. bool isDirExist(QString fullPath)
  13. {
  14. QFileInfo fileInfo(fullPath);
  15. if(fileInfo.isDir())
  16. {
  17. return true;
  18. }
  19. return false;
  20. }

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

  1. bool isFileExist(QString fullFileName)
  2. {
  3. QFileInfo fileInfo(fileFullName);
  4. if(fileInfo.isFile())
  5. {
  6. return true;
  7. }
  8. return false;
  9. }

六、图像旋转

第一种方案

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

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

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

第二种方案

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

  1. void Widget::paintEvent(QPaintEvent *)
  2. {
  3. QPainter painter(this);
  4. QPixmap disc(":/disc.png");
  5.  
  6. /* 碟机转动 */
  7. if(imageRotate++ == )
  8. imageRotate = ;
  9. /* 设定旋转中心点 */
  10. painter.translate(,);
  11. /* 旋转的角度 */
  12. painter.rotate(imageRotate);
  13. /* 恢复中心点 */
  14. painter.translate(-,-);
  15. /* 画图操作 */
  16. painter.drawPixmap(,,,, disc);
  17. }

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. Centos7环境下消息队列之ActiveMQ实战

    Activemq介绍 对于消息的传递有两种类型: 一种是点对点的,即一个生产者和一个消费者一一对应: 另一种是发布/订阅模式,即一个生产者产生消息并进行发送后,可以由多个消费者进行接收. JMS定义了 ...

  2. 数组与集合List的相互转化

    数组转化为集合 #此运用的是Arrays中的asList方法,返回一个List集合 *当数组元素为基本数据类型是把整个数组当作一个元素放入List集合中,代码举例: ,,}; List<int[ ...

  3. Redhat 7 之 Mariadb(mysql)

    Redhat7 之后mysql 改为Mariadba,由于mysql 被卖给了IBM, 有闭源的风险. 所以就另外开了一个新的分支,继续开源.Maria 来源于mysql开发者的女儿的名字. 1. 安 ...

  4. 【BZOJ】1497: [NOI2006]最大获利 最大权闭合子图或最小割

    [题意]给定n个点,点权为pi.m条边,边权为ci.选择一个点集的收益是在[点集中的边权和]-[点集点权和],求最大获利.n<=5000,m<=50000,0<=ci,pi<= ...

  5. 【BZOJ】2693: jzptab 莫比乌斯反演

    [题意]2154: Crash的数字表格 莫比乌斯反演,多组询问,T<=10000. [算法]数论(莫比乌斯反演) [题解]由上一题, $ans=\sum_{g\leq min(n,m)}g\s ...

  6. 20155117王震宇 2006-2007-2 《Java程序设计》第二周学习总结

    学号 2006-2007-2 <Java程序设计>第X周学习总结 教材学习内容总结 学习一门语言首先要熟悉基础的语法,注意不要和之前学过的语言知识混淆. java严格区分大小写. 教材学习 ...

  7. 阿里iconfont引入方法

    原文:iconfont的引入方法   第一步:使用font-face声明字体@font-face {font-family: 'iconfont';src: url('iconfont.eot'); ...

  8. centos6.5 导入matplotlib报错 No module named '_tkinter

    1.解决方案 在centos系统下,导入matplotlib时,出现ImportError: No module named ‘_tkinter’的错误,首先 yum list installed | ...

  9. perl6 Socket: 发送HTTP请求

    sub MAIN(Str $host,Str $path, Int $port) { my $send = "GET $path HTTP/1.1\r\nHost: $host\r\n\r\ ...

  10. Xcode 9安装

    Xcode 9 Xcode 9 Compatibility Xcode 9 requires a Mac running macOS 10.13.2 or later. Xcode 9 include ...