1. QString与String的转换

//1.QString转换String
QString qstr = "hello";
string str = qstr.toStdString();//2.String转换QString
string str = "hello";
QString qstr = QString::fromStdString(str);

2. QString与int的转换

//1.QString转int
QString str = “100”;
int tmp = str.toInt();//2.int转QString
int tmp = 100;
QString str = QString::number(tmp);

3. Qt计时器的使用

头文件 QTime

#include <QTime>QTime time;
time.start(); //开始计时//···代码int time_Diff = time.elapsed(); //返回从上次start()或restart()开始以来的时间差,单位ms

4. qDebug()的使用

qDebug() 函数,可以将调试信息直接输出到控制台上,有两种方式:
(1) 将字符串当做参数传给qDebug()函数。
(2) 使用流输出的方法输出多个字符串。

//头文件
#include <QDebug>//将字符串作为参数传给qDebug()
int x = 1;
qDebug("x : %d",x);//使用流的方法输出
int y = 2;
qDebug() << "y : " << y;

5. Qt项目打印信息到控制台

在Qt项目中使用cout 或者 qDebug 输出时,看不到输出结果
需要设置 项目属性 > 链接器 > 系统 > 子系统 的值为 控制台 (/SUBSYSTEM:CONSOLE),再次编译后,会弹出控制台命令框窗口,显示调试信息。

设置属性

这里的配置和平台一定要与运行时的一致,否则设置无效

6. Qt容器与C++容器的区别

在刚开始写Qt项目时,常遇到一些容器使用的问题,这里简单说下QTL和STL的区别。更多深入的知识可以自行搜索学习。
C++中有的容器,Qt都有对应的容器。其用法类似,名称和头文件略有不同,例如:

//头文件:
//C++
#include <algorithms.h>
#include <vector>//Qt
//这是用于算法的。
#include <qalgorithms.h>
//这是用于QT QVector容器的
#include <QVector>

等等,在C++中的容器、算法前加上Q即对应Qt中的容器、算法(绝大部分)。所以C++中叫STL, 而QT叫QTL


2020.7.10更新

7. show与exec的区别

show()exec()都用于显示窗口,show()默认显示的是非模态对话框,即此对话框出现后你还可以对其他窗口进行操作。而exec()出现的只能是模态对话框,即无法对其他窗口进行操作。
show()显示窗口,可以用setModal函数进行设置窗口为模态,即无法操作其他窗口,即被阻塞。

8. 判断字符串中是否有某个子字符串

在C++中常会使用strstr()函数来判断字符串中是否有某个子字符串;qt中有内置的函数,即contains()

QString Content = ui->consoleEdit->text();
if(Content.contains("test")) { ui->answerLabel->setText("yes");
} else { ui->answerLabel->setText("no");
}

9. 如何手动生成moc_xxx.cpp文件

当在VS工程中编写QT和C++程序时,要想不同模块之间通过QT的信号(SIGNALS)和槽(SLOT)的机制进行通信,就需要继承于Q_OBJECT基类,继承于Q_OBJECT基类的类(文件),会相应的生成一个moc文件。
若没有生成moc文件,则会编译报错。
手动生成moc_xxx.cpp文件的方法:
右键单击要生成moc文件的.h文件,点击属性->常规,选择自定义生成工具

设置自定义生成工具

选择下面的自定义生成工具,设置命令行、输出、和依赖项

设置生成命令

//命令行
$(QTDIR)\bin\moc.exe xxx.h -o .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp
//输出
.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp
//依赖项
$(QTDIR)\bin\moc.exe %(FullPath)

重新编译运行即可。

作者:我的倩宝
链接:https://www.jianshu.com/p/0533af2dd25c
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Qt中的问题和方法总结相关推荐

  1. QT中创建条形统计图的方法

    QT中创建条形统计图的方法 .pro中 QT += charts 头文件 #include <QtCharts/QChartView> #include <QtCharts/QBar ...

  2. qt中文件读取的方法(新手入门必看)

    TxT文本文件读取 qt中三个常用的处理文件的头文件: QDataStream QTextStream QFile txt文件读取(以字符数组形式读取) Widget::Widget(QWidget ...

  3. QT中IDirect3DDevice9的Present方法失败情况的处理笔记

    这几天在试着使用QT做编辑器,然后打算使用Irrlicht作为渲染引擎.结果在集成的时候遇到了问题. 使用了Irrlicht论坛里面有人提供的QIrrlichtWidget,结果什么都画不出来.仔细跟 ...

  4. Qt 中使用全局变量的方法

         Qt中,经常会出现一个工程下面多个.cpp文件都需要调用或者改变某一个变量的问题,这个时候往往有两种解决办法:第一种是利用信号与槽的机制,第二种方法就是利用全局变量.下面着重说一下第二种:  ...

  5. QT中Json的使用方法(类和json字符串相互转换的方法)

    在QT5.0版本以后支持对Json的使用,直接使用QT提供的json类进行数据的组织和解析. Json类 介绍 QJsonDoucument 它封装了一个完整的 JSON 文档,并且可以从 UTF-8 ...

  6. C++ QT中的QSound使用方法

    在pro文件中添加 QT += multimedia 就可以了 转载于:https://www.cnblogs.com/Zengineer/p/4621066.html

  7. qt 添加依赖库lib_在QT中添加LIB的方法

    自动显示隐藏布局的listView 借助View的OnTouchListener接口来监听listView的滑动,通过比较与上次坐标的大小,判断滑动方向,并通过滑动方向来判断是否需显示或者隐藏对应的布 ...

  8. Qt中添加资源图片方法g

    第一步:添加Qt资源文件,往项目中添加新文件,选择Qt分类中的Qt资源文件,文件名改为"myImage",其它选项默认即可: 第二步:添加图片,先将图片文件夹Image放到与资源文 ...

  9. QT中添加图片资源的方法

    1.在ui设计界面中添加label,用于显示图片 2.添加QT资源文件 往项目中添加新文件,选择QT分类中的资源文件,名称为"myImage",其他选项默认. 3.添加资源 在项目 ...

最新文章

  1. 过来人的肺腑之言,攻读ML和CV硕士给我带来了什么?
  2. SRIO学习(一)——外设数据流
  3. 从PCB焊接角度谈画PCB图时应注意的问题
  4. ELK性能优化实战分析
  5. 专门针对科学家工程师的僵尸网络
  6. 部署安装kubernetes client-python,执行pip install setup.py时报错
  7. 社会学专业喜欢计算机怎么办,考研困惑我是计算机专业的学生可是我喜欢文学想考河北师范大学的研究 爱问知识人...
  8. Count Color poj2777 线段树
  9. SQL 内置排名函数 DENSE_RANK
  10. 记录‘launch_simulation‘failed due to earlier errors的一个解决方法
  11. 【转】数组指针指针数组
  12. html搜索联系人,联系人列表.html
  13. 安卓机器人做图软件_移动机器人领域,除了工业(安卓)一体机,工控机也必不可少...
  14. 写出调试c语言程序的基本操作步骤,C语言程序设计基本步骤
  15. 电子科技大学《图论及其应用》复习总结--第四章 欧拉图与哈密尔顿图
  16. 计算机正数和负数的除法运算,正数与负数——整数的乘除法与四则运算.pdf
  17. Linux系统中使用vim编写C语言代码实现过程
  18. 【flutter】按钮,添加圆角
  19. Java之父22年前写的一段代码,你见过吗?
  20. SAP SM30实现表关键字段自增

热门文章

  1. Ubuntu18.04设置虚拟内存
  2. RecyclerView的超强辅助Graywater——基础实操篇
  3. 送一台闲置笔记本!!!
  4. 2023年值得关注:邮件营销平台的新技术和新趋势
  5. 四川成龙师范大学计算机专业,四川师范大学成龙校区有哪些专业
  6. addEventListener 事件监听方式
  7. MSP430F5529学习笔记(2)——点亮LED
  8. datatype未定义是什么意思_vue里面的methods写了方法,为什么渲染的时候还是报未定义...
  9. console.log()和console.dir()的区别
  10. 未来已来:大数据和人工智能浪潮下的未来进化