您当前的位置: 首页 >  qt

鱼儿-1226

暂无认证

  • 0浏览

    0关注

    1100博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Qt中的问题和方法总结

鱼儿-1226 发布时间:2020-08-14 10:29:06 ,浏览量:0

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 time;
time.start(); //开始计时

//···代码

int time_Diff = time.elapsed(); //返回从上次start()或restart()开始以来的时间差,单位ms

4. qDebug()的使用

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

 

//头文件
#include 

//将字符串作为参数传给qDebug()
int x = 1;
qDebug("x : %d",x);
 
//使用流的方法输出
int y = 2;
qDebug()  系统 > 子系统 的值为 控制台 (/SUBSYSTEM:CONSOLE),再次编译后,会弹出控制台命令框窗口,显示调试信息。

设置属性

 

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

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

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

 

//头文件:
//C++
#include 
#include 

//Qt
//这是用于算法的。
#include 
//这是用于QT QVector容器的
#include 

等等,在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 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

关注
打赏
1604459285
查看更多评论
0.0752s