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 ...
随机推荐
- Centos7环境下消息队列之ActiveMQ实战
Activemq介绍 对于消息的传递有两种类型: 一种是点对点的,即一个生产者和一个消费者一一对应: 另一种是发布/订阅模式,即一个生产者产生消息并进行发送后,可以由多个消费者进行接收. JMS定义了 ...
- 数组与集合List的相互转化
数组转化为集合 #此运用的是Arrays中的asList方法,返回一个List集合 *当数组元素为基本数据类型是把整个数组当作一个元素放入List集合中,代码举例: ,,}; List<int[ ...
- Redhat 7 之 Mariadb(mysql)
Redhat7 之后mysql 改为Mariadba,由于mysql 被卖给了IBM, 有闭源的风险. 所以就另外开了一个新的分支,继续开源.Maria 来源于mysql开发者的女儿的名字. 1. 安 ...
- 【BZOJ】1497: [NOI2006]最大获利 最大权闭合子图或最小割
[题意]给定n个点,点权为pi.m条边,边权为ci.选择一个点集的收益是在[点集中的边权和]-[点集点权和],求最大获利.n<=5000,m<=50000,0<=ci,pi<= ...
- 【BZOJ】2693: jzptab 莫比乌斯反演
[题意]2154: Crash的数字表格 莫比乌斯反演,多组询问,T<=10000. [算法]数论(莫比乌斯反演) [题解]由上一题, $ans=\sum_{g\leq min(n,m)}g\s ...
- 20155117王震宇 2006-2007-2 《Java程序设计》第二周学习总结
学号 2006-2007-2 <Java程序设计>第X周学习总结 教材学习内容总结 学习一门语言首先要熟悉基础的语法,注意不要和之前学过的语言知识混淆. java严格区分大小写. 教材学习 ...
- 阿里iconfont引入方法
原文:iconfont的引入方法 第一步:使用font-face声明字体@font-face {font-family: 'iconfont';src: url('iconfont.eot'); ...
- centos6.5 导入matplotlib报错 No module named '_tkinter
1.解决方案 在centos系统下,导入matplotlib时,出现ImportError: No module named ‘_tkinter’的错误,首先 yum list installed | ...
- perl6 Socket: 发送HTTP请求
sub MAIN(Str $host,Str $path, Int $port) { my $send = "GET $path HTTP/1.1\r\nHost: $host\r\n\r\ ...
- Xcode 9安装
Xcode 9 Xcode 9 Compatibility Xcode 9 requires a Mac running macOS 10.13.2 or later. Xcode 9 include ...